免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2246 | 回复: 0

ThinkPHP2.1模版使用笔记 - 模版嵌套/AJAX级联 [复制链接]

论坛徽章:
0
发表于 2011-11-30 17:42 |显示全部楼层
ThinkPHP2.1模版使用笔记 - 模版嵌套/AJAX级联








最近项目用PHP,不太熟,用框架开发,熟悉过程中,记录下来,备查
标签库select标签使用
  1. <tagLib name="html" />
  2. <html:select options="productCategory" selected="prodCateId" first="选择分类" name="prod_cate_id" id="prod_cate_id" />
  3. $Cate = D('ProductCategory');
  4. $list = $Cate->field('prod_cate_id,prod_cate_name')->findAll();
  5. foreach ($list as $vo){
  6.     $groupList[$vo['prod_cate_id']] = $vo['prod_cate_name'];
  7. }
  8. $this->assign('productCategory',$groupList);
  9. $this->assign('prodCateId','');
  10. $this->display('edit');

  11. <volist>标签的嵌套使用

  12. <volist name="list" id="vo">
  13.     {$vo.prod_cate_name}
  14.     <volist name="vo['voo']" id="sub">
  15.         {$sub.prod_cate_name}
  16.     </volist>
  17. </volist>
  18. $Dao = M('ProductCategory');
  19. $list = $Dao->where('ifnull(prod_cate_pid,0)=0')->order('prod_cate_order asc')->findAll();
  20. $Sub = M('ProductCategory');
  21. foreach ($list as $n=>$val)
  22. {
  23.     $list[$n]['voo']=$Sub->where('prod_cate_pid='.$val['prod_cate_id'])->select();
  24. }
  25. $this->assign('list',$list);
  26. $this->display();

  27. AJAX二级联动的实现

  28. <script type="text/javascript" src="__ROOT__/public/scripts/jquery-1.7.1.min.js"></script>  
  29. <script type="text/javascript">
  30. function ajaxSelect(url,objone,objtwo,defval){
  31.     var $s1=$(objone);
  32.     var $s2=$(objtwo);
  33.     $s1.change(function(){
  34.         var curval = objone.options[objone.selectedIndex].value;
  35.         $s2.html("");
  36.         $("<option>").text("二级分类").val("").appendTo($s2);
  37.         $.ajax({  
  38.              type: "POST",  
  39.              url: url,  
  40.              data: "catepid="+curval,
  41.              dataType: 'json',
  42.              success: function(obj){
  43.                 if(obj.data)
  44.                 {
  45.                     $(eval(obj.data)).each(function(i,elm){
  46.                         appendOptionTo($s2,elm.prod_cate_name,elm.prod_cate_id,defval);
  47.                     });
  48.                 }
  49.              }
  50.         });
  51.     }).change();
  52.     function appendOptionTo(o,k,v,d){
  53.         var opt=$("<option>").text(k).val(v);
  54.         if(v==d){opt.attr("selected", "selected")}
  55.         opt.appendTo(o);
  56.     }
  57. }
  58. $(function(){
  59.     ajaxSelect('__URL__/changeCategory',$('#cate_one').get(0),$('#cate_two').get(0),'{$vo.cate_two}');
  60. });
  61. </script>
  62. <tagLib name="html" />
  63. <html:select options="productCategory" selected="prodCateId" first="选择分类" name="cate_one" id="cate_one" />  
  64. <select name="cate_two" id="cate_two">
  65. <option value="">二级分类</option>
  66. </select>

  67. public function changeCategory()
  68. {
  69.     $id= $_POST['catepid'];
  70.     header("Content-type:text/html; charset=utf-8");
  71.     $Cate = D('ProductCategory');
  72.     $list = $Cate->field('prod_cate_id,prod_cate_name')->where('prod_cate_pid='.$id)->select();
  73.     $this->ajaxReturn(json_encode($list),'','',0);
  74. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP