WeMall微信商城源码活动报名插件代码详情
WeMall微信商城源码插件活动报名代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考,商家可自由设置报名项目,活动时间,报名内容
代码详情地址:http://addon.wemallshop.com/Product/addonList/menu_id/1 或 www.wemallshop.com
AdminController.class
<?php
namespace Addons\Apply\Controller;
class AdminController extends InitController
{
public function __construct()
{
parent::__construct();
}
public function index()
{
$config = M("AddonApplyConfig")->find();
$this->assign("config", $config);
$record = D('Addons://Apply/AddonApplyRecord'); // 实例化User对象
$count = $record->count();// 查询满足要求的总记录数
$Page = new \Think\Page($count, 12);// 实例化分页类 传入总记录数和每页显示的记录数(25)
$Page->setConfig('theme', "<div class='widget-content padded text-center'><ul class='pagination'></li><li>%FIRST%</li><li>%UP_PAGE%</li><li>%LINK_PAGE%</li><li>%DOWN_PAGE%</li><li>%END%</li><li><a> %HEADER% %NOW_PAGE%/%TOTAL_PAGE% 页</a></ul></div>");
$show = $Page->show();// 分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$record = $record->limit($Page->firstRow . ',' . $Page->listRows)->order("id desc")->relation(true)->select();
$this->assign("record", $record);// 赋值数据集
$this->assign('page', $show);// 赋值分页输出
$this->display();
}
public function addConfig()
{
$event = $_POST["event"];
// $event = str_replace('"', "", $event);
// $event = str_replace('[', "", $event);
// $event = str_replace(']', "", $event);
// $event = json_encode(explode(",", $event), JSON_UNESCAPED_UNICODE);
$_POST["event"] = $event;
M("AddonApplyConfig")->where(array("id" => "1"))->save($_POST);
$this->success('修改成功', 'Admin/Admin/index/addon/Apply');
}
}
IndexController.class
<?php
namespace Addons\Apply\Controller;
class IndexController extends InitController
{
public $appUrl = "";
public function __construct()
{
parent::__construct();
$this->appUrl = "http://" . I("server.HTTP_HOST");
}
public function index()
{
$user = R("App/Public/oauthLogin");
// $this->assign("user",$user);
$config = M("AddonApplyConfig")->where(array("status" => 1))->find();
// print_r(explode(',',$config["event"]));
$this->assign("event", explode(',',$config["event"]));
$this->assign("config", $config);
$contact = M("Contact")->where(array("user_id" => $user["id"]))->find();
if ($contact) {
$this->assign("contact", $contact);
}
M("AddonApplyConfig")->where(array("id" => 1))->setInc("visiter");
$this->assign('user', $user);// 赋值分页输出
$this->display();
}
public function addConfig()
{
M("AddonApplyConfig")->where(array("id" => "1"))->save($_POST);
}
public function addOrder()
{
$userHas = M("AddonApplyContact")->where(array("user_id" => session("userId")))->find();
if ($userHas) {
$contact ["id"] = $userHas ["id"];
$contact ["user_id"] = session("userId");
$contact ["name"] = $_POST ["name"];
$contact ["address"] = $_POST ["address"];
M("AddonApplyContact")->save($contact);
} else {
$contact ["user_id"] = session("userId");
$contact ["name"] = $_POST ["name"];
$contact ["city"] = "";
$contact ["area"] = "";
$contact ["address"] = $_POST ["address"];
M("AddonApplyContact")->add($contact);
}
$userHas = M("AddonApplyContact")->where(array("user_id" => session("userId")))->find();
$contact_id = $userHas["id"];
$config = M("AddonApplyConfig")->find();
$data ["user_id"] = session("userId");
$data ["contact_id"] = $contact_id;
$data ["name"] = $_POST ["name"];
$data ["phone"] = $_POST ["phone"];
$data ["note"] = $_POST ["note"];
$data ["event"] = $_POST["event"];
$data ["time"] = date("Y-m-d H:i:s");
$result = M("AddonApplyRecord")->add($data);
M("AddonApplyConfig")->where(array("id" => 1))->setInc("apply");
if ($result) {
$this->ajaxReturn($result);
}
}
Index_index
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>{$config.name}</title>
<meta name="format-detection" content="telephone=no, address=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<!-- apple devices fullscreen -->
<meta name="apple-touch-fullscreen" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<link href="__CSS__/bootstrap.min.css" rel="stylesheet">
<link href="__CSS__/font-awesome.min.css" rel="stylesheet">
<link href="__CSS__/animate.css" rel="stylesheet">
<link href="__CSS__/common.css" rel="stylesheet">
<link href="__CSS__/sign.css" rel="stylesheet">
<script type="text/javascript" src="__JS__/jquery.min.js"></script>
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<style type="text/css">
#page_tag_load {
display: none;
font-size: 14px;
position: fixed;
bottom: 70px;
height: 16px;
margin-left: -29px;
left: 50%
}
</style>
</head>
<body>
<div class="container container-fill">
<div class="pcenter-main">
<div class="head">
<div class="pdetail">
<div class="img-circle"><img src="{$user.avater}"></div>
<div class="pull-left">
<span class="name">{$user.username}</span>
<span class="type">会员ID: {$user.id}</span>
</div>
</div>
<div class="head-nav">
<a class="head-nav-list"
href="">累计报名<span>{$config.apply}</span></a>
<a class="head-nav-list"
href="">访问量<span>{$config.visiter}</span></a>
</div>
</div>
</div>
<div class="scroll-container">
<div class="wrapper">
<ul class="list-group">
<li class="list-group-item" style="padding: 0px 0px;border-bottom: 1px solid #ccc;">
<div class="con">
<div class="list-hd">
<h5>项目:</h5><span>{$config.event}</span>
</div>
</div>
</li>
<li class="list-group-item" style="padding: 1px 0px;border-bottom: 1px solid #ccc;">
<div class="con">
<div class="list-hd">
<h5>时间:</h5><span>{$config.time_range}</span>
</div>
</div>
</li>
<li class="list-group-item" style="padding: 0px;">
<div class="con">
<div class="list-hd">
<h5>项目介绍:</h5><span>{$config.introduce}</span>
</div>
</div>
</li>
</ul>
</div>
</div>
<ul class="nav nav-bardown nav-justified" style="z-index:10;">
<li><a><span class="btn btn-default" style="border-radius: 50px;padding: 11.5px 30px;" onclick="submitApply();">点击报名</span></a></li>
</ul>
<div id="page_tag_load"><img src="__IMG__/ajax-loader.gif" alt="loader"></div>
<div id="cover2" style="display: none; position: fixed; width: 100%; height: 100%;"></div>
<div class="tc_c2" id="join_box"
style="left: 0px; bottom: 0px; z-index: 3000; position: fixed; display: none;width: 100%;">
<div class="join_box_Xq_out" style="max-height: 641px;">
<div class="tc_c_close">
<div><img title="关闭" onclick="hidePop(this);" ontouchstart="" src="__IMG__/share_qr_close3.png"></div>
</div>
<div class="join_box_Xq">
<ul id="ul_join_property" class="pop_massage">
<li>
<div class="optionsName">姓名</div>
<div class="inpoutK">
<input value="{$contact.name}" type="text" class="font0" name="name" id="name">
</div>
</li>
<li>
<div class="optionsName">手机</div>
<div class="inpoutK">
<input value="{$contact.phone}" type="text" class="font0" name="phone" id="phone">
</div>
</li>
<li>
<div class="optionsName">地址</div>
<div class="inpoutK">
<input value="{$contact.address}" type="text" class="font0" name="address" id="address">
</div>
</li>
<li>
<div class="optionsName">项目</div>
<div class="inpoutK">
<!--<input value="{$contact.address}" type="text" class="font0" name="address" id="address">-->
<select name="event" style="width: 98%;" id="event">
<volist name="event" id="event">
<option value="{$event}">{$event}</option>
</volist>
</select>
</div>
</li>
<li>
<div class="optionsName">备注</div>
<div class="inpoutK">
<input value="" type="text" class="font0" name="note" id="note">
</div>
</li>
</ul>
</div>
<div class="tc_c_btn2" ontouchstart="" id="xdBtn">
<a title="返回" class="fanHui" href="javascript:void(0);" ontouchstart="" onclick="_joinBox._prev()"
style="display: none;"></a>
<div class="join_Btn">
<input id="input_submit" class="blueBtn" type="submit" value="我要报名"
style="display: none; width: 100%;">
<a style="width: 100%;" id="a_submit" class="blueBtn font02" href="javascript:void(0);"
onclick="submitOrder()">提交</a>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function submitApply(){
$('#cover2').show();
$('#join_box').show();
}
function hidePop(){
$("#join_box").hide();
$("#cover2").hide();
}
var submitFlag = true;
function submitOrder(){
if (submitFlag == false) {
alert("请不要重复操作!");
return;
};
var name = $('#name').val();
var phone = $('#phone').val();
var event = $('#event').val();
var note = $('#note').val();
var address = $('#address').val();
if (name.length == 0 || phone.length == 0) {
alert("请核对输入的信息!");
return;
};
submitFlag = false;
$.ajax({
type: "post",
url: "{:u_addons('Apply://Index/addOrder')}",
data: {
name: name,
phone: phone,
event: event,
note: note,
address: address
},
success: function (data) {
if(data){
hidePop();
alert("报名成功!");
location.reload();
}
},
beforeSend: function () {
$('#page_tag_load').show();
},
complete: function () {
$('#page_tag_load').hide();
submitFlag = true;
}
});
}
</script>
</body>
</html>
KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架
WeMall微信商城源码活动报名插件代码详情的更多相关文章
- WeMall微信商城源码插件大转盘代码详情
WeMall微信商城源码插件大转盘代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 代码详情地址:http://addon.wemallshop.com/Product/ ...
- WeMall微信商城源码插件代金券部分代码
WeMall微信商城源码插件Coupon代金券代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php na ...
- WeMall微信商城源码插件会员卡代码详情
WeMall微信商城源码插件会员卡代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 Index_index.html <html> <head> ...
- wemall app商城源码Android之支付宝通知处理类
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之处 ...
- wemall app商城源码机器人检测
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之 ...
- wemall app商城源码Android之支付宝接口公用函数
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之 ...
- wemall app商城源码Android数据的SharedPreferences储存方式
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android数据 ...
- wemall app商城源码Android之ListView异步加载网络图片(优化缓存机制)
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之L ...
- wemall app商城源码中android按钮的三种响应事件
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码中android按 ...
随机推荐
- 利用PHPCMS V9站群功能建立分站
hosts文件就在C:\Windows\system32\drivers\etc\hosts下 用一套CMS软件系统,做多个网站,统一管理,用户可以互通,这就是所谓的站群功能.这对于运营和维护都能节省 ...
- 推荐学习C#的地方
大神 http://www.cnblogs.com/kingjiong/category/152147.html
- nginx的配置服务器集群,负载均衡
在server{}前配置服务器ip和端口号 如: upstream local_tomcat { local_tomcat为访问路径,在下面配置服务器ip及端口号,也可以分配权重(weight==?) ...
- iOS动画案例(1)
受人所托,做一个类似于qq账号信息里的一个动画,感觉挺有意思,也没感觉有多难,就开始做了,结果才发现学的数学知识都还给体育老师了,研究了大半天才做出来. 先看一下动画效果: 用到的知识 ...
- C++ 头文件系列(forward_list)
简介 forwrad_list字面意思为前向列表,但实际上它是一种单向列表,只能从单一方向遍历. 单向链表实现 forward_list内部是用单向列表实现的,并且设计该库的时候就是以近乎手写的单向链 ...
- 多线程方式实现Socket通信
一.首先,介绍下两类传输协议:TCP:UDP TCP是Tranfer Control Protocol的 简称,是一种面向连接的保证可靠传输的协议.通过TCP协议传输,得到的是一个顺序的无差错的数据流 ...
- IOS网络请求之AFNetWorking 3.x 使用
前言: 计划把公司的网络请求与业务解耦,所以想着学习一下网络请求,最近学习了NSURLSession,今天来学习一下基于NSURLSession封装的优秀开源框架AFNetWorking 3.x,之前 ...
- 二维码 iOS
一:生成二维码 1.根据一个字符串生成一个二维码 根据 #import <CoreImage/CoreImage.h>这个框架写的 在按钮的点击事件写 @interface ViewCo ...
- java集合框架02——Collection架构与源码分析
Collection是一个接口,它主要的两个分支是List和Set.如下图所示: List和Set都是接口,它们继承与Collection.List是有序的队列,可以用重复的元素:而Set是数学概念中 ...
- ReentrantLock实现原理
以下是本篇文章的大纲 1 synchronized和lock 1.1 synchronized的局限性 1.2 Lock简介 2 AQS 3 lock()与unlock()实现原理 3.1 基础知识 ...