惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC
A
About on SuperTechFans
Vercel News
Vercel News
I
InfoQ
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
S
SegmentFault 最新的问题
V
Visual Studio Blog
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
Apple Machine Learning Research
Apple Machine Learning Research
GbyAI
GbyAI
美团技术团队

博客园 - shaoyun

Python抓取百度搜索结果 多线程采集器的核心代码 畅想无线显示技术 ASP.Net 一步一步学习分页(适合初学者) - shaoyun - 博客园 OAuth协议分析一 通用四级联动下拉列表 通用手动分页方法 通用三级联动下拉列表 Indy 邮件发送的例子 Indy 组件学习注意事项 利用API的消息发送程序原理 Delphi DLL 的编写 Discuz!NT3.1 子目录安装实例 Delphi 托盘程序示例 Delphi ADO 学习笔记 SQL获取数据表的空间占用 C#编写简单的系统服务管理器 很久没有写博了,发发挠骚 Twitter被封后教你继续访问的方法
ThinkPHP2.1模版使用笔记 - 模版嵌套/AJAX级联
shaoyun · 2011-11-29 · via 博客园 - shaoyun

最近项目用PHP,不太熟,用框架开发,熟悉过程中,记录下来,备查

标签库select标签使用

<tagLib name="html" />

<html:select options="productCategory" selected="prodCateId" first="选择分类" name="prod_cate_id" id="prod_cate_id" />

$Cate = D('ProductCategory');

$list = $Cate->field('prod_cate_id,prod_cate_name')->findAll();

foreach ($list as $vo){

    $groupList[$vo['prod_cate_id']] = $vo['prod_cate_name'];

}

$this->assign('productCategory',$groupList);

$this->assign('prodCateId','');

$this->display('edit');

<volist>标签的嵌套使用

<volist name="list" id="vo">

    {$vo.prod_cate_name}

    <volist name="vo['voo']" id="sub">

        {$sub.prod_cate_name}

    </volist>

</volist>

$Dao = M('ProductCategory');

$list = $Dao->where('ifnull(prod_cate_pid,0)=0')->order('prod_cate_order asc')->findAll();

$Sub = M('ProductCategory');

foreach ($list as $n=>$val)

{

    $list[$n]['voo']=$Sub->where('prod_cate_pid='.$val['prod_cate_id'])->select();

}

$this->assign('list',$list);

$this->display();

AJAX二级联动的实现

<script type="text/javascript" src="__ROOT__/public/scripts/jquery-1.7.1.min.js"></script> 

<script type="text/javascript">

function ajaxSelect(url,objone,objtwo,defval){

    var $s1=$(objone);

    var $s2=$(objtwo);

    $s1.change(function(){

        var curval = objone.options[objone.selectedIndex].value;

        $s2.html("");

        $("<option>").text("二级分类").val("").appendTo($s2);

        $.ajax({ 

             type: "POST", 

             url: url, 

             data: "catepid="+curval,

             dataType: 'json',

             success: function(obj){

                if(obj.data)

                {

                    $(eval(obj.data)).each(function(i,elm){

                        appendOptionTo($s2,elm.prod_cate_name,elm.prod_cate_id,defval);

                    });

                }

             }

        });

    }).change();

    function appendOptionTo(o,k,v,d){

        var opt=$("<option>").text(k).val(v);

        if(v==d){opt.attr("selected", "selected")}

        opt.appendTo(o);

    }

}

$(function(){

    ajaxSelect('__URL__/changeCategory',$('#cate_one').get(0),$('#cate_two').get(0),'{$vo.cate_two}');

});

</script>

<tagLib name="html" />

<html:select options="productCategory" selected="prodCateId" first="选择分类" name="cate_one" id="cate_one" /> 

<select name="cate_two" id="cate_two">

<option value="">二级分类</option>

</select>

public function changeCategory()

{

    $id= $_POST['catepid'];

    header("Content-type:text/html; charset=utf-8");

    $Cate = D('ProductCategory');

    $list = $Cate->field('prod_cate_id,prod_cate_name')->where('prod_cate_pid='.$id)->select();

    $this->ajaxReturn(json_encode($list),'','',0);

}