ホームページ > 記事 > ウェブフロントエンド > リストの無限ロードの 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>
関連する推奨事項:
js と jquery を使用してページの無限ロードを実現する方法
JavaScript に基づいてモバイル端末で無制限のロードとページングを実装するためのサンプル コード共有
Vue .js を使用して無制限のロードとページング関数の開発を実現します
以上がリストの無限ロードの Ajax 実装を説明する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。