• 技术文章 >后端开发 >php教程

    基于Thinkphp和jquery 实现ajax多选反选不选删除数据的功能

    不言不言2018-06-08 13:51:19原创972
    这篇文章主要介绍了基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能的相关资料,需要的朋友可以参考下

    建议有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中文网!

    相关推荐:

    thinkPHP3.2.3结合Laypage实现分页功能

    ThinkPHP和Ajax 实现二级联动的下拉菜单

    基于反ajax推送,PHP实现的消息实时推送功能

    以上就是基于Thinkphp和jquery 实现ajax多选反选不选删除数据的功能的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php实现新闻发布系统 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • PHP Hyperf 3.0 发布!新功能速览• 详解PHP怎么实现旋转图片验证• 简单理解PHP超级全局变量• 一起聊聊PHP的路由与伪静态应用• PHP中几种常见的开发模式
    1/1

    PHP中文网