<!-- 前端代码部分-->
<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 两级联动的更多相关文章

  1. ajax实现无刷新两级联动DropDownList

    ajax实现的无刷新三级联动 http://zhangyu028.cnblogs.com/articles/310568.html 本文来自小山blog:http://singlepine.cnblo ...

  2. JS练习:两级联动

    代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title ...

  3. Combobox下拉框两级联动

    下拉框的两级联动是我们开发中经常遇到一种情况.比如一个学生管理系统中,根据年级.科目及姓名查询学生考试成绩,年级和科目都是硬盘中的有限数据(数据库)而学生则可以有用户手动指定,这时在数据库中有年级和科 ...

  4. Jquery实现两级联动

    最后结果如下: 关键代码如下: <select name="customerCondition['credibilityBegin']" id="credibili ...

  5. ajax_get/post_两级联动

    使用ajax实现菜单联动 通常情况下,GET请求用于从服务器上获取数据,POST请求用于向服务器发送数据. 需求:选择第一个下拉框的值,根据第一个下拉框的值显示第二个下拉框的值 首先使用GET方式. ...

  6. ASP_NET实现界面无刷新的DropdownList两级联动效果

    所谓DropdownList联动,也就是在选一个DropdownList的时候使另外一个DropdownList的内容更新(如选省份时显示所属城市),按常规的方法那就是在第一个DropdownList ...

  7. JQuery EasyUI combobox 省市两级联动

    表名:province  结构如下 CallIn.tpl 模板页 <select id="consult_province" name="consult_provi ...

  8. JS 省市两级联动(不带地区版本)

    基于网上找的一个版本改造,因为项目需求不需要地区只要省.市,所以做了改版,两个input上直接取出了数据 <html> <head> <script src=" ...

  9. 踩iviewui中Select 选择器两级联动,重置查询条件时第二级数据无法清除的坑

    小颖公司最近做的项目用的vue+iviewui+axios,在做项目的过程中,遇到一个问题: 二级联动的下拉框,第一个下拉框一直都有值,第二个下拉框是在选择了第一个下拉框之后采取调用ajax获取其值, ...

随机推荐

  1. Andrew Ng机器学习课程11之贝叶斯统计和正则化

    Andrew Ng机器学习课程11之贝叶斯统计和正则化 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 在统计学中有两个学派,一个是频率学派,另一个是贝叶斯学 ...

  2. Django 数据库

    一.操作数据库 Django配置连接数据库: 在操作数据库之前,首先先要连接数据库.这里我们以配置MySQL为例来讲解.Django连接数据库,不需要单独的创建一个连接对象.只需要在settings. ...

  3. CNN-4: GoogLeNet 卷积神经网络模型

    1.GoogLeNet 模型简介 GoogLeNet 是2014年Christian Szegedy提出的一种全新的深度学习结构,该模型获得了ImageNet挑战赛的冠军. 2.GoogLeNet 模 ...

  4. VC++实现遍历指定文件夹

    VC++实现遍历指定文件夹,并进行深度遍历,一级,二级...最终列出该文件夹下所有文件全路径. #include "stdafx.h" #include <iostream& ...

  5. windows和linux环境下使用google的glog日志库

    一.概述 glog是google推出的一款轻量级c++开源日志框架,源码在github上,目前最新release版本是v0.3.5. githut地址:https://github.com/googl ...

  6. 机器学习-EM算法的收敛证明

    上一篇开头说过1983年,美国数学家吴建福(C.F. Jeff Wu)给出了EM算法在指数族分布以外的收敛性证明. EM算法的收敛性只要我们能够证明对数似然函数的值在迭代的过程中是增加的 即可: 证明 ...

  7. Python使用datetime来判断近七天

    目录 strptime 使用strptime来格式化字符串 datetime.datetime.strptime("2019-10-02", "%Y-%m-%d" ...

  8. CSS之cursor用法

    cursor: url('~ROOT/shared/assets/image/vn-text-cursor-31-49.png') 22 22, nw-resize; 另外还有一个 cursor: g ...

  9. C# wsdl.exe 生成类文件

    wsdl.exe D:\XXX\demand\demand.\wsdl\XXX.wsdl /\wsdl\class 在 vs tools:Developer Command Prompt For VS ...

  10. 怎样手写一个Object.create()方法

    Object.create()会将参数对象作为一个新创建的空对象的原型, 并返回这个空对象, 基于这个功能, 就有了下面这个Object.create()的手动实现: function _create ...