基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能

5年以前  |  阅读数:316 次  |  编程语言:PHP 

建议有js基础,了解jquery,thinkphp,废话不说多下面就上代码

《――――HTML――――》


    //thinkphp循环显示把data里fid赋予多选框
    <volist name="data" id="vo">
    <tr>
       <td><input type="checkbox" value="{$vo.fid}"/></td>//可在后面加td输入参数  
    </tr>
    </volist>
    <tr>
    <th width="80"><input type="checkbox" id="all"/>全选</th>
    <th width="80"><input type="button" value="全选" class="btn" id="selectAll" /></th>
    <th width="80"><input type="button" value="全不选" class="btn" id="unSelect" /></th>
    <th><input type="button" value="反选" class="btn" id="reverse" /></th> 
    <th width="180">
     <a href="javascript:void(0);" rel="external nofollow" onclick="del()" title="删除选定数据">删除</a>
    </th> 
    </tr>

《――――jsvascript――――》


    <script>
        //多选
        $("#all").click(function(){   
        if(this.checked){   
            $("#list :checkbox").attr("checked", true);  
          }else{   
            $("#list :checkbox").attr("checked", false); 
          }   
        });
        //当点到全选按钮
        $("#selectAll").click(function () { 
          $("#list :checkbox,#all").attr("checked", true);  
        });
        //全不选
        $("#unSelect").click(function () {  
          $("#list :checkbox,#all").attr("checked", false);  
        });
        //反选
        $("#reverse").click(function () {  
          $("#list :checkbox").each(function () {  
            $(this).attr("checked", !$(this).attr("checked"));  
          }); 
          allCheck(); 
        });
        //删除
        function del(){
          var valArr = new Array;
          $("#list :checkbox[checked]").each(function(i){ 
            valArr[i] = $(this).val(); 
          });
          var vals = valArr.join(',');//数组转换以逗号隔开的字符串 
          if (valArr.length == 0) {
            alert('请选择要删除的选项');
          }else{
            if (confirm("确定删除?删除后将无法恢复。")){
              var data={name:vals};
              $.ajax({
                type: "post",
                url: "{:U('College/School/faculty_del')}",//url为tp方法(控制器/方法)
                data:data,
                success: function(json) {
                 var obj = eval('(' + json + ')');//返回回来的json转化为js对象
                  if (parseInt(obj.counts) > 0) {
                    alert(obj.des);
                    location.reload();
                   } else {
                    alert(obj.des);
                   }
                  },
                error: function(XMLHttpRequest, textStatus) {
                   alert("页面请求错误,请检查重试或联系管理员!\n" + textStatus);
                 }
               });
            }
          }
        }
    </script>

《――――PHP――――》


    public function faculty_del(){
        $fid = trim($_POST['name']);
        //以下为查询条件
        $bname['deletemark'] = 0;
        $res = $this->faculty_model
                ->where(array('fid'=>array('in',$fid)))
                ->save($bname);
          //查询条件为你的查询条件,我这边为逻辑删除,修改字段值就好
    //    echo $this->faculty_model->getLastSql();
    //    var_dump($res);
    //    exit;
        if ($res) {
         $counts = "1";
         $des = "成功";
        } else {
         $counts = "0";
         $des = "失败";
        }
        $json_data = "{";
        $json_data.= "\"counts\":".json_encode($counts).",";
        $json_data.= "\"des\":".json_encode($des)."";
        $json_data.= "}";
        echo $json_data;
        exit;    
      }

由于是异步所以你发过来的数据都在控制台查看,当前页面没输出,不要去页面上去找。

以上所述是小编给大家介绍的基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例