>  기사  >  웹 프론트엔드  >  목록의 무한 로딩에 대한 Ajax 구현을 설명하는 예

목록의 무한 로딩에 대한 Ajax 구현을 설명하는 예

小云云
小云云원래의
2017-12-19 14:05:551841검색

이 글은 목록의 무한 로딩과 보조 드롭다운 옵션을 달성하는 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=&#39;text/javascript&#39;>
/*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=&#39;"+"__WEB__"+"?a=Index&c=Index&m=content&mid=1&cid=33&aid="+info[key][&#39;aid&#39;]+""+"&#39;><h3 class=&#39;f100 f16 ts500&#39;>"+info[key]['title']+"</h3><p>"+info[key]['description']+"</p><span class=&#39;b parb&#39;></span></a>";
   $('p.zizhiListContBox').append(oStr);
 };
 });
});
})();
</script>

Ajax는 보조 옵션을 수행합니다:

<!-- 示例:HTML -->
<dl class="pr keshi" >
 <dt class="pa">科室:</dt>
 <dd class="pa">
  <select name=&#39;keshi&#39; class=&#39;m_keshi&#39;>
   <option value=&#39;0&#39;>--请选择科室--</option>
  </select>
  <select name=&#39;zhuanjia&#39; class=&#39;m_zhuanjia&#39;>
   <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=&#39;"+info[key][&#39;catname&#39;]+"&#39; cid=&#39;"+info[key][&#39;cid&#39;]+"&#39;>"+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=&#39;"+info2[key2][&#39;title&#39;]+"&#39;>"+info2[key2]['title']+"</option>";    
   };
   $('dl.zhuanjia').find('select.m_zhuanjia').html(oStr2);
  });
 };
});
})();
</script>

관련 권장 사항:

js 및 jquery를 사용하여 페이지 무제한 로드를 달성하는 방법

JavaScript

Vue 기반 모바일 단말기에서 무제한 로드 및 페이징을 위한 샘플 코드 공유. Node.js를 사용하여 무제한 로딩 및 페이징 기능 개발을 달성하세요

위 내용은 목록의 무한 로딩에 대한 Ajax 구현을 설명하는 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.