<tfoot id='GbViE'></tfoot>
    • <bdo id='GbViE'></bdo><ul id='GbViE'></ul>

      1. <legend id='GbViE'><style id='GbViE'><dir id='GbViE'><q id='GbViE'></q></dir></style></legend>

        <small id='GbViE'></small><noframes id='GbViE'>

        <i id='GbViE'><tr id='GbViE'><dt id='GbViE'><q id='GbViE'><span id='GbViE'><b id='GbViE'><form id='GbViE'><ins id='GbViE'></ins><ul id='GbViE'></ul><sub id='GbViE'></sub></form><legend id='GbViE'></legend><bdo id='GbViE'><pre id='GbViE'><center id='GbViE'></center></pre></bdo></b><th id='GbViE'></th></span></q></dt></tr></i><div id='GbViE'><tfoot id='GbViE'></tfoot><dl id='GbViE'><fieldset id='GbViE'></fieldset></dl></div>

        layui.table表格搜索重载

        时间:2024-08-28

          <i id='QEoUn'><tr id='QEoUn'><dt id='QEoUn'><q id='QEoUn'><span id='QEoUn'><b id='QEoUn'><form id='QEoUn'><ins id='QEoUn'></ins><ul id='QEoUn'></ul><sub id='QEoUn'></sub></form><legend id='QEoUn'></legend><bdo id='QEoUn'><pre id='QEoUn'><center id='QEoUn'></center></pre></bdo></b><th id='QEoUn'></th></span></q></dt></tr></i><div id='QEoUn'><tfoot id='QEoUn'></tfoot><dl id='QEoUn'><fieldset id='QEoUn'></fieldset></dl></div>

          <tfoot id='QEoUn'></tfoot>
          • <bdo id='QEoUn'></bdo><ul id='QEoUn'></ul>
              <tbody id='QEoUn'></tbody>

                • <small id='QEoUn'></small><noframes id='QEoUn'>

                  <legend id='QEoUn'><style id='QEoUn'><dir id='QEoUn'><q id='QEoUn'></q></dir></style></legend>
                  引入问题:
                  传统web更新页面用页面跳转的方式,现多用局部元素重载,提高用户体验。Ajax技术就是为了实现此功能而诞生的。layui框架在table模块中提供了类似的功能,为避免二次渲染,同时体验一下框架开发者的良苦用心,对layui.table重载进行探索。

                  表格重载:
                  layui官方提供了数据表格reload函数,其本质是向后端发送数据请求,接收后端数据后重载表格。按照此思路,利用Ajax技术同样可以达到相同效果,实现步骤相对复杂(大家可以尝试实现来讨论)。

                  重载案例:搜索

                  对表格中的性别列进行搜素,效果如下:


                  前端代码:
                  <div class="layui-tab-content">
                      <div class="layui-tab-item layui-show">
                          <div class="demoTable">
                              <div class="layui-form">
                                  搜索性别:
                                  <div class="layui-inline">
                                      <!--        <input class="layui-input" name="id" id="sex" autocomplete="off">-->
                                      <select  id="sex" name="department" lay-verify="required" >
                                          <option value="">请选择性别</option>
                                          <option value="m">男</option>
                                          <option value="f">女</option>
                                      </select>
                                  </div>
                                  <button class="layui-btn" data-type="reload">搜索</button>
                              </div>
                          </div>
                      </div>
                  </div>
                  <table id="demo"  class="layui-table" lay-filter="test"></table>
                  <script>
                   layui.use(['table','jquery'],function(){
                          var table =layui.table;
                          url1 = 'test_table_data.php';
                  		//渲染
                  		table.render({
                              elem: '#demo' //指定原始表格元素选择器(推荐id选择器)
                              ,data: <?php echo json_encode($data)?>//url1
                              ,id: 'test_table'
                              ,cols: [[ {field: 'id', title: 'ID'},
                                  {field: 'real_name', title: 'Name'},
                                  {field: 'sex', title: 'Sex'},
                                  {field: 'birthday', title: 'Birthday'}
                              ]]//设置表头
                              ,even: true //开启隔行背景
                              //,…… //更多参数参考右侧目录:基本参数选项
                              ,parseData:function(res) { //将原始数据解析成 table 组件所规定的数据
                                  return {
                                      "code": 0, //解析接口状态
                                      "msg": res.msg, //解析提示文本
                                      "count": res.total, //解析数据长度
                                      "data": res //解析数据列表
                                  };
                              }
                          });
                          //按照部门搜索,table数据重载
                          var url2 = 'test_table_reload.php';
                          var $ = layui.$, active = {
                              reload: function () {
                                  var sex = $('#sex');
                                  table.reload('test_table', {
                                      url: url2,
                                      method: 'post',
                                      where: { //设定异步数据接口的额外参数,任意设
                                          sex: sex.val()
                                          // key: {
                                          //     // id: demoReload.val(),
                                          //
                                          // }
                                      }
                                      , page: {
                                          curr: 1 //重新从第 1 页开始
                                      }
                                  }); //只重载数据
                              }
                          }
                  
                          $('.layui-form .layui-btn').on('click', function(){
                              var type = $(this).data('type');
                              active[type] ? active[type].call(this) : '';
                          });
                  </script>
                  
                  
                  这里采用下拉菜单来获取搜索信息,也可以使用输入框,在重载中进行相应的修改即可。
                  说明:
                  1、渲染部分参考方法渲染
                  2、表格渲染数据采用url异步数据接口或者data来显示数据均可采用此方式进行表格重载;
                  3、可以采用method参数对传参方式进行定义;
                  4、where可理解为需要传递到后台的参数,案例中sex为传递参数名,sex.val()为传递参数值。

                  Tips:
                  1、像案例中采用获取鼠标单击事件实现搜索,对button元素的事件监视函数的编写很重要,官方文档中没有给出,在示例代码中有所体现。
                  2、 $('.layui-form .layui-btn').on('click', function(){中'.layui-form .layui-btn'语法非常严格。此案例中,.layui-form后必须有且仅有1个Space,否则无法重载,其余情况类推。同样可以使用按钮直接监控点击进行重载

                  后端代码:
                  <?php
                  include "../connectDB.php";
                  
                  $sex = $_POST['sex'];
                  
                  $sql = "select * from testtable1";
                  $result = mysqli_query($conn,$sql);
                  $data = array();
                  
                  while ($row = mysqli_fetch_assoc($result)) {
                      if($row['sex']==$sex){
                          $data[] = $row;
                      }
                  }
                  $json_data = json_encode($data);
                  echo $json_data;
                  
                  正常接收传递的参数,根据需要进行处理后返回。
                   
                  上一篇:解决layer.msg与parent关闭或者刷新冲突的问题 下一篇:没有了

                  相关文章

                    • <bdo id='yZSGj'></bdo><ul id='yZSGj'></ul>

                    <legend id='yZSGj'><style id='yZSGj'><dir id='yZSGj'><q id='yZSGj'></q></dir></style></legend><tfoot id='yZSGj'></tfoot>

                  1. <small id='yZSGj'></small><noframes id='yZSGj'>

                    <i id='yZSGj'><tr id='yZSGj'><dt id='yZSGj'><q id='yZSGj'><span id='yZSGj'><b id='yZSGj'><form id='yZSGj'><ins id='yZSGj'></ins><ul id='yZSGj'></ul><sub id='yZSGj'></sub></form><legend id='yZSGj'></legend><bdo id='yZSGj'><pre id='yZSGj'><center id='yZSGj'></center></pre></bdo></b><th id='yZSGj'></th></span></q></dt></tr></i><div id='yZSGj'><tfoot id='yZSGj'></tfoot><dl id='yZSGj'><fieldset id='yZSGj'></fieldset></dl></div>