`
stevecj
  • 浏览: 105935 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

利用yii framework dropdown 创建级联菜单

    博客分类:
  • PHP
阅读更多
利用yii framework dropdown 创建级联菜单


你经常需要一个表单,级联城市,或者级联的分类等等功能,其中有两个下拉框,一个的值依赖于另外一个下拉框。使用Yii 内置的 ajax 功能,你可以创建这样一个下拉框。下面将演示如何实现它。

首先是表单的视图。我们将展示一个表单,显示国家,以及根据国家将显示它的城市。
程序代码 程序代码
<?php
echo CHtml::dropDownList('country_id','', array(1=>'USA',2=>'France',3=>'Japan'),
array(
'ajax' => array(
'type'=>'POST', //request type
'url'=>'dynamiccities', //url to call
'update'=>'#city_id', //selector to update
//'data'=>'js:javascript statement'
//leave out the data key to pass all form values through
)));

//empty since it will be filled by the other dropdown
echo CHtml::dropDownList('city_id','', array());
?>


第一个下拉框由 几个代表国家的 value/name 对组成。。当它被改变时,一个 ajax 请求将被当前 controller 的 'dynamiccities' action完成。请求的结果( 'dynamiccities' action的输出) 将被替换到第二个id 是#city_id的下拉框。

接下来是 controller action,它将输出 html 以填充第二个下拉框。此外它将依赖于第一个下拉框的值。
程序代码 程序代码
<?php
public function actionDynamiccities()
{
    $data=Location::model()->findAll('parent_id=:parent_id',
                  array(':parent_id'=>(int) $_POST['country_id']));

    $data=CHtml::listData($data,'id','name');
    foreach($data as $value=>$name)
    {
        echo CHtml::tag('option',
                   array('value'=>$value),CHtml::encode($name),true);
    }
}
?>


它将检索所有 parent_id 是第一个下拉框值的城市。然后将输出所有这些城市到标签中,最终形成第二个下拉框。

你可能想知道 $_POST['country_id'] 来自哪里。非常简单,当第一个下拉框中的 ajax 数组的 'data' 键为空时,下拉框所在表单所有元素的值将被传递到 controller ,通过 ajax 请求。若你在使用 Firebug 你可以查看这个请求。

这个 behaviour 也可以被改变。默认地,ajax 配置数组 中 'data' 键的值是 js:jQuery(this).parents("form").serialize()。 开头的 js: 告诉 Yii 后面跟的是一个 javascript 语句,不应被转义。因此,若你改变 'data' 键为另外以 'js:' 开始的语句,你可以填写自己的语句。也适用于 'success' 参数。
分享到:
评论

相关推荐

    Yii Framework API手册

    Yii Framework API手册是针对开发者的一款详尽参考资料,它包含了Yii框架的所有核心组件、类库以及扩展的使用方法和接口信息。Yii是一个高性能、基于组件的PHP框架,用于开发Web 2.0应用。API(Application ...

    yii framework框架 + yii app模板(基本、高级).zip

    yii framework框架 + yii app模板(基本、高级)

    PhpStorm6 创建yii framework项目

    在本篇文档中,我们将深入了解如何使用PhpStorm6这款集成开发环境(IDE)来创建基于Yii框架...开发者可以利用PhpStorm的智能编码功能快速编写代码,同时利用Yii框架的快速开发特性,高效构建稳定和功能丰富的Web应用。

    YII Framework框架教程之使用YIIC快速创建YII应用详解

    主要介绍了YII Framework框架教程之使用YIIC快速创建YII应用的方法,详细分析说明了YII Framework框架使用YIIC命令行创建应用的相关技巧与注意事项,需要的朋友可以参考下

    Yii Framework v2.0.8.rar

    Yii Framework是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。

    Yii Framework 1.1.6

    5. **表单处理和验证**:Yii提供了便捷的表单创建和验证功能,可以快速创建动态表单并进行数据验证。 6. **URL管理**:Yii的URL管理器允许开发者定义友好的SEO优化的URL规则,提高搜索引擎的友好度。 7. **I18N与...

    YII Framework框架使用YIIC快速创建YII应用之migrate用法实例详解

    主要介绍了YII Framework框架使用YIIC快速创建YII应用之migrate用法,详细分析了migrate的功能与用法,并给出创建登录后台的实例讲述了migrate的相关使用技巧,需要的朋友可以参考下

    yii framework 中文完全手册

    这个“yii framework 中文完全手册”提供了详尽的指南,帮助开发者理解和利用Yii的强大功能。在深入探讨之前,我们先简单介绍一下Yii框架的基本概念。 Yii,发音为"易",寓意“简易”,是一个快速、安全且专业的...

    Yii Framework v1.1.19

    Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。

    yii framework 1.1.14 chm文档

    yii framework 1.1.14 chm文档,从官方html文档编译,展示效果很好.

    Yii Framework框架中事件和行为的区别及应用实例分析

    主要介绍了Yii Framework框架中事件和行为的区别及应用,结合实例形式分析了Yii Framework框架中事件和行为的相关概念、原理、区别及应用操作技巧,需要的朋友可以参考下

    Yii Framework v1.10 Class Reference

    Yii Framework 1.10的API手册

    yiiframework 中文 手册

    本中文手册旨在提供全面且详细的指南,帮助开发者更好地理解和利用 Yii 的各种功能。 一、Yii 框架概述 Yii 提供了丰富的特性,如 MVC(模型-视图-控制器)架构模式、数据库访问对象(DAO)、ActiveRecord(对象...

    yii framework 中文手册

    yii framework 最全最新的中文手册

    PHP实例开发源码-Yii Framework php框架.zip

    PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip

    基于PHP的Yii Framework php框架.zip

    Yii Framework 是一个高性能的、基于组件的 PHP 框架,专为开发Web 2.0应用程序而设计。它的名称 "Yii" 在汉语中的发音类似...通过不断实践和学习,开发者可以充分利用Yii的强大功能,创造出高效、稳定的Web应用程序。

    yii实现级联下拉菜单的方法

    在Yii框架中,级联下拉菜单是一种常见的前端交互方式,它允许用户在选择一个选项后,根据所选选项动态更新另一个下拉菜单的内容。这种功能在处理有层级关系的数据时非常有用,例如省份和城市的选择。下面我们将详细...

    Yii Framework v1.1.10类参考中文手册

    Yii Framework v1.1.10类参考中文手册

    php_Yii Framework v2.0.4.zip.zip

    4. **表单和验证**:Yii提供了方便的表单构建和验证功能,可以轻松创建和验证用户输入。 5. **安全特性**:包括防止SQL注入、跨站脚本攻击(XSS)的防护,以及认证和授权机制,确保应用的安全性。 6. **缓存管理**...

Global site tag (gtag.js) - Google Analytics