Thinkphp 两级联动
<!-- 前端代码部分-->
<div class="pop-movegroup" id="salesmanBox">
<dl>
<dt>选择推广账号:</dt>
<dd> <!-- 一级联动的数据先查询遍历出来-->
<select name="salesman" id="salesman">
<volist name="salesman" id="vo">
<option value="{$vo.id}">{$vo.uname}</option>
</volist>
</select> <!-- 二级联动-->
<select name="lib" id="libs"> </select>
</dd>
<dd class="center">
<input type="hidden" id='uid' value="{$_GET['uid']|intval}">
<input type="button" class="btn_b mr10" value="确认" onclick="admin.domoveSalesUser()">
<input type="button" class="btn_w" value="取消" onclick="ui.box.close()">
</dd>
</dl>
</div>
js部分:
<script type="text/javascript">
//点击一级联动里面的选项 获取id 然后去查询对应的数据
$("#salesman").change(function(){
//获取id
var catid=$("#salesman").val();
//将id提交到后台
$.post("{:U('admin/User/doAddSalesUsers')}","id="+catid,function(data){
//清空二级联动
$("#libs").empty();
//console.log(data); var count = data.data.length;
var i = 0;
var b="";
//根据后端所返回的数据 去展示对应的数据
for(i=0;i<count;i++){
b+="<option value='"+data.data[i].uid+"'>"+data.data[i].uname+"</option>";
}
$("#libs").append(b);
});
}); //点击二级菜单里面的数据
admin.domoveSalesUser = function(){
//获取id
var id = $('#libs').val(); if(!id){
ui.error( '没有选中推广账户' );return false;
}
//开始进行绑定
var uid = $('#uid').val();
$.post(U('admin/User/doAddSalesUser'),{uid:uid,sid:id},function(msg){
ajaxReload(msg);
//location.href = U('admin/User/index');
},'json');
};
</script>
后端代码部分:
public function doAddSalesUsers()
{
$id = $_POST['id'];
$data = model("SalesmanEntity")->where("sid = " . $id)->select();
$this->ajaxReturn($data, "JSON");
} public function doAddSalesUser()
{
$return = array('status' => '0', 'data' => '绑定推广账号失败');
$uid = !empty($_POST['uid'])? intval($_POST['uid']) : 0; //yonghuid
// var_dump($uid);
$sid = !empty($_POST['sid'])? intval($_POST['sid']) : 0; //suoshuzuid
//var_dump($sid);
// var_dump($dataArray);
if(empty($uid) || empty($sid)){
$return['data'] = "数据无效!";
exit(json_encode($return));
} //去salesman_entity表中去查询该女性id所属用户组
$dataArray = M('salesman_entity')->where("uid=". $_POST['sid'])->field("sid")->select();
//var_dump($dataArray);
$idss = array_column($dataArray,'sid');
//invite_id
$yqId = $idss[0];
//女性用户id $user = model('User')->where('uid='.$uid)->find();
if($user['invite_id']>0){
$this->error("该用户已被绑定!");
}
$datas = array('invite_id'=>$yqId,'sid'=>$sid);
//开始绑定
if(model('User')->where('uid='.$uid)->setField('invite_id',$yqId) && model('User')->where('uid='.$uid)->setField('sid',$sid)){
$return = array('status' => 1, 'data' => '用户绑定成功');
}
exit(json_encode($return));
}
Thinkphp 两级联动的更多相关文章
- ajax实现无刷新两级联动DropDownList
ajax实现的无刷新三级联动 http://zhangyu028.cnblogs.com/articles/310568.html 本文来自小山blog:http://singlepine.cnblo ...
- JS练习:两级联动
代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title ...
- Combobox下拉框两级联动
下拉框的两级联动是我们开发中经常遇到一种情况.比如一个学生管理系统中,根据年级.科目及姓名查询学生考试成绩,年级和科目都是硬盘中的有限数据(数据库)而学生则可以有用户手动指定,这时在数据库中有年级和科 ...
- Jquery实现两级联动
最后结果如下: 关键代码如下: <select name="customerCondition['credibilityBegin']" id="credibili ...
- ajax_get/post_两级联动
使用ajax实现菜单联动 通常情况下,GET请求用于从服务器上获取数据,POST请求用于向服务器发送数据. 需求:选择第一个下拉框的值,根据第一个下拉框的值显示第二个下拉框的值 首先使用GET方式. ...
- ASP_NET实现界面无刷新的DropdownList两级联动效果
所谓DropdownList联动,也就是在选一个DropdownList的时候使另外一个DropdownList的内容更新(如选省份时显示所属城市),按常规的方法那就是在第一个DropdownList ...
- JQuery EasyUI combobox 省市两级联动
表名:province 结构如下 CallIn.tpl 模板页 <select id="consult_province" name="consult_provi ...
- JS 省市两级联动(不带地区版本)
基于网上找的一个版本改造,因为项目需求不需要地区只要省.市,所以做了改版,两个input上直接取出了数据 <html> <head> <script src=" ...
- 踩iviewui中Select 选择器两级联动,重置查询条件时第二级数据无法清除的坑
小颖公司最近做的项目用的vue+iviewui+axios,在做项目的过程中,遇到一个问题: 二级联动的下拉框,第一个下拉框一直都有值,第二个下拉框是在选择了第一个下拉框之后采取调用ajax获取其值, ...
随机推荐
- charles 批量重复请求/重复发包工具
本文参考:charles 批量请求 重复发包工具/repeat Charles 让你选择一个请求并重复,在测试后端接口的时候非常有用: Charles将请求重新发送到服务器,并将响应显示为新请求. 如 ...
- CSS History
Preface 如果只是要写程序,那的确是不需要这么麻烦,上来直接看Syntax,动手写上至少300行代码,做上3个应用程序,这门语言你也就差不多会用了,接下来不过就是模式,特殊的地方以及记住一些函数 ...
- OpenGL学习笔记 之一 (基本的图形绘制)
参考网址:http://www.cnblogs.com/FredCong/archive/2012/10/13/2722893.html #include <glut.h> #includ ...
- 给引入页面的js和css资源加上版本号,防止浏览器缓存资源
最近因为在做前端开发的相关工作,每次发布新版本以后,不到5分钟,测试童鞋一个接一个的抱怨说BUG根本就没有修改,这个时候你说的最多的话就是“清缓存!!清页面缓存!!你没有清缓存!!你清理了页面缓存就对 ...
- csu 1901: 赏赐 OR 灾难
1901: 赏赐 OR 灾难 Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 86 ...
- python不定长参数 *argc,**kargcs(19)
在 python函数的声明和调用 中我们简单的了解了函数的相关使用,然而在函数传递参数的时候,我们埋下了一个坑,关于不定长参数的传递我们还没有讲,今天这篇文章主要就是讲解这个问题. 一.函数不定长参数 ...
- 设计模式的好书 -- ongoing
1 设计模式--可复用面向对象软件的基础 Erich Gamma. Richard Helm -- 已经下载了/baiduNetDisk Design Patterns --- Element ...
- Android虚拟机安装apk
将apk放入platform-tools 打开虚拟机之后 进入该目录执行命令
- c++语法笔记(中)
继承与派生 继承面向对象程序设计4个主要特征:抽象,封装,继承,多态性c++通过继承实现可重用性.有时两个类的内容基本相同或有一部分相同,这时可以利用原来声明的类作为基础,再加上新的内容即可,减少了工 ...
- python中浅拷贝和深拷贝分析
首先,我们知道Python3中,有6个标准的数据类型,他们又分为可以变和不可变.不可变:Number(数字).String(字符串).Tuple(元组).可以变:List(列表).Dictionary ...