• 技术文章 >web前端 >js教程

    实现列表无限加载与二级下拉菜单选项的Ajax(附代码)

    php中世界最好的语言php中世界最好的语言2018-03-31 13:42:01原创1001
    这次给大家带来实现列表无限加载与二级下拉菜单选项的Ajax(附代码),使用实现列表无限加载与二级下拉菜单选项的Ajax的注意事项有哪些,下面就是实战案例,一起来看一下。

    Ajax做列表无限加载和Ajax做二级下拉选项,供大家参考,具体内容如下

    //栏目Ajax做加载
    public function ajaxlist(){
     //echo "http://www.域名.com/index.php?a=Index&c=Index&m=ajaxlist";
     //echo "<hr>";
     $data = Q('sum');
     $where = array();
     $where['cid'] = 33;
     $rongyuList = M('content')->limit($data,2)->where($where)->select();
     $data['stat'] = 1;
     $data = $rongyuList;
     $this->ajax($data);
     //也可以手动把想要的字段拼接成字符串 
     /*echo "[";
     foreach($rongyuList as $k){
      echo "{"."\""."title"."\"".":"."\"".$k['title']."\"".","."\""."description"."\"".":"."\"".$k['description']."\"".","."\""."cid"."\"".":"."\"".$k['cid']."\""."}".",";  
     }
     echo "]";*/
     }

    具体页面实现:

    <script type='text/javascript'>
    /*ajax*/
    (function(){
    //发送数据 
    var url = "WEB"+"?a=Index&c=Index&m=ajaxlist";
    var oSum = ''; 
    $('a.ajaxBut').click(function(){
     oSum = $('p.zizhiListContBox>a').size();
     $.post(url,{sum:oSum},function(result){
     console.log(result);
     eval("var info="+result);
     for(var key in info){
       oStr = "<a href='"+"WEB"+"?a=Index&c=Index&m=content&mid=1&cid=33&aid="+info[key]['aid']+""+"'><h3 class='f100 f16 ts500'>"+info[key]['title']+"</h3><p>"+info[key]['description']+"</p><span class='b parb'></span></a>";
       $('p.zizhiListContBox').append(oStr);
     };
     });
    });
    })();
    </script>

    Ajax 做二级选项:

    <!-- 示例:HTML -->
    <dl class="pr keshi" >
     <dt class="pa">科室:</dt>
     <dd class="pa">
      <select name='keshi' class='m_keshi'>
       <option value='0'>--请选择科室--</option>
      </select>
      <select name='zhuanjia' class='m_zhuanjia'>
       <option>--请选择专家--</option>
      </select>
     </dd>
    </dl>

    示例控制器:

    //示例控制器
    /* Ajax请求栏目列表 */
    public function ajaxlanmu(){
     $lanmuList = M('category')->where('pid=142')->select();
     $this->ajax($lanmuList);
    }
    public function ajaxzhuanjia(){
     $where = array();
     $data = Q('sum');
     $data = $data ? $data : 143;
     $where['cid'] = $data;
     $zhuanjiaList = M('guahao')->where($where)->select();
     $this->ajax($zhuanjiaList);
    }

    示例:JS

    <script>
    (function(){
    var lanmuUrl = "WEB"+"?a=Index&c=Index&m=ajaxlanmu";
    var zhuanjiaUrl = "WEB"+"?a=Index&c=Index&m=ajaxzhuanjia";
    var oSum = oStr = oStr2 = oVal = oKong = info2 = oCid = '';
    /* lanmu */
    $.post(lanmuUrl,function(result){
     eval("var info="+result);
     for(var key in info){oStr += "<option value='"+info[key]['catname']+"' cid='"+info[key]['cid']+"'>"+info[key]['catname']+"</option>";};
     $('dl.keshi').find('select.m_keshi').append(oStr);
    });
    /* zhuanjia */
    $('dl.keshi').find('select.m_keshi').change(function(){
     oVal = $(this).find('option:selected').val();
     if(oVal == 0){
      $('dl.zhuanjia').find('select.m_zhuanjia').html("<option>--请选择专家--</option>");
     }else{
      oCid = $(this).find('option:selected').attr('cid');
      $.post(zhuanjiaUrl,{sum:oCid},function(result){
       eval("info2="+result);
       oStr2 = '';//注意这里要清空第一次请求的数据
       for(var key2 in info2){
        oStr2 += "<option value='"+info2[key2]['title']+"'>"+info2[key2]['title']+"</option>";    
       };
       $('dl.zhuanjia').find('select.m_zhuanjia').html(oStr2);
      });
     };
    });
    })();
    </script>

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    Ajax+php怎么进行数据交互与局部页面的刷新

    Ajax方法实现Form表单提交的方法

    以上就是实现列表无限加载与二级下拉菜单选项的Ajax(附代码)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:二级 加载 无限
    上一篇:JavaScript怎么使用ajax操作表单 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文详解Node中的模块化、文件系统与环境变量• 为什么要用debugger来调试代码?这样你能读懂各种源码!• 一文聊聊Node包管理发展的五个阶段• 一文探究Angular中的服务端渲染(SSR)• 带你了解Angular组件间进行通信的几种方法
    1/1

    PHP中文网