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

本文详细讲述了yii实现级联下拉菜单的方法,具体步骤如下:

1.模版中加入如下代码:

<?php
 echo $form->dropDownList($model, 'src_type_id', OrderSrc::options(), array(
 <span style="white-space:pre"> </span>'id' => 'task-order-src-id',
 ));
 echo $form->dropDownList($model, 'src_shop_id', array(''=>'全部'), array(
 <span style="white-space:pre"> </span>'id' => 'task-shop-id',
 ))
?>

在这段代码中,OrderSrc_options() 这个是先读取一个下拉菜单。调用OrderScr model中的options方法。内容如下

public static function options($hasShop = true) {
 $model = new self();
 if($hasShop) $model->hasShop();
 $models = $model->findAll();
 $array = array(''=>'全部');
 foreach($models as $model) {
 $array[$model->src_id] = $model->src_name;
 }
 return $array;
}

2.然后在模版页面中增加JS代码,实现当第一个下拉菜单变化时给第二个下拉菜单进行内容赋值。

<script type='text/javascript'>
$().ready(function(e) {
 $('#task-order-src-id').change(function(e) {
 refreshShops();
 });
 refreshShops();
 function refreshShops() {
 $.get('<?php echo $this->createUrl('getShops')?>', {
  'srcId': $('#task-order-src-id').val()
 }, function(html_content) {
  $('#task-shop-id')
  .html(html_content)
  .find('option[value=<?php echo $model->src_shop_id?>]')
   .attr('selected', 'selected');
 });
 }
});
</script>

在这段JS代码中,实现调取一个程序获取第二个下拉菜单的值(调用Controller中的actionGetShops方法),任何追加到第二个下拉菜单中。

Controller中的actionGetShops方法如下:

public function actionGetShops() {
 $srcId = $_GET['srcId'];
 $array = ThirdpartInterfaceConfig::options($srcId);
 $htmlContent = "<option value=''>全部</options>";
 foreach($array as $k=>$v) {
 $htmlContent .= "<option value='{$k}'>{$v}</option>";
 }
 echo $htmlContent;
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索yii
, 级联
下拉菜单
jquery级联下拉菜单、android级联下拉菜单、级联下拉菜单、excel下拉菜单级联、ionic级联下拉菜单,以便于您获取更多的相关知识。

时间: 2024-09-15 00:54:32

yii实现级联下拉菜单的方法_php实例的相关文章

Yii把CGridView文本框换成下拉框的方法_php实例

本文实例讲述了Yii把CGridView文本框换成下拉框的方法.分享给大家供大家参考.具体实现方法如下: 使用yii的朋友都知道Yii中的CGridView默认显示提文本框了,那么我们要怎么把它转换成下拉框呢?本文就此分析一下解决方法. 默认情况下CGridView会生成一个文本框,但是这并不友好,用户往往希望知道有什么可选的,特别是数据库里存的是数字id的时候,我们希望将数字转换为可读的文本,这时候只需要修改一下表头的"filter"属性就行了,比如: 复制代码 代码如下: <

用 PHPRPC 实现 Ajax 级联下拉菜单

ajax|菜单|下拉 级联下拉菜单就是从一个下拉菜单中选中一项后,相应的另一个下拉菜单的内容会随之改变. 一般来说,最简单的,就是每次选中都提交一次表单,刷新整个页面.这也是用户体验度最差的. 另一种是把所有选项在第一次加载时就全部载入整个页面中的 javascript 数组中,然后级联通过 JavaScript 来控制,在整个数据量不大时,这是一个不错的实现无刷新并且快速的方法,但是当整个数据量非常大时,这种方法就会使第一次加载变得非常慢了. 还有就是采用 Ajax 方式,即开始只载入第一层菜

用PHPRPC实现Ajax级联下拉菜单

级联下拉菜单就是从一个下拉菜单中选中一项后,相应的另一个下拉菜单的内容会随之改变. 一般来说,最简单的,就是每次选中都提交一次表单,刷新整个页面.这也是用户体验度最差的. 另一种是把所有选项在第一次加载时就全部载入整个页面中的 javascript 数组中,然后级联通过 JavaScript 来控制,在整个数据量不大时,这是一个不错的实现无刷新并且快速的方法,但是当整个数据量非常大时,这种方法就会使第一次加载变得非常慢了. 还有就是采用 Ajax 方式,即开始只载入第一层菜单的内容,当用户选中第

jquery无限级联下拉菜单简单实例演示_jquery

本文实例讲述了jquery无限级联下拉菜单代码以及jquery无限级联下拉菜单实现思路.分享给大家供大家参考.具体如下: 最终效果图: 因为是级联,所以数据必须是树型结构的,这里的测试数据如下: 看下效果图: 1.效果图一:   2.效果图二:   3.效果图三:     由图可知,下拉框的个数并不是写死的,而是动态加载的.每当下拉框选择改变的时候,会发送一次ajax请求,请求成功返回json格式数据,当返回的数据不为空时(即有子节点时),则会向页面中添加一个下拉框,没有则不添加. 插件的实现代

Bootstrap每天必学之级联下拉菜单_javascript技巧

本文将介绍自定义的bootstrap级联下拉菜单,主要应用场合有省市级关联菜单等等,那么就先拿这个例子来讲,当然其他场景的关联菜单也同样适用.说实话,封装好一个通用的组件还是需要花费很多精力的和时间的,所谓通用,自然要考虑周全,叹!这次整理的Bootstrap关联select,里面也涉及到了很多jquery.ajax.springMVC等等知识点,可谓包罗万象! 首先,请允许我代表该自定义组件做一番小小的介绍. "hi,你好,我叫yunm.combox.js,主人给我起的名字,其实呢,挺俗的.我

JS二级级联下拉菜单

问题描述 有一个二级级联下拉菜单,但是就是不显示,大侠们看看啥问题? <tr><td align="right">学院:</td><td><select name="role" onBlur="checkRole(this)" onchange="populateMajor(this.options[this.selectedIndex].value)"><op

利用WPS表格的数据有效性生成下拉菜单的方法

  利用WPS表格的数据有效性生成下拉菜单的方法 1.打开WPS表格软件,首先用鼠标选中要进行下拉菜单设置的单元格,然后单击功能区的"数据"选项卡,选择"有效性"选项组; 2.在"数据有效性"的对话框中,单击"设置"选项卡,单击"允许"下方的倒三角按钮,在弹出的下拉菜单中选择"序列"选项; 3.在对话框的"来源"下方输入内容,将输入的内容用半角逗号隔开,然后单击&qu

WPS表格中单元格设置下拉菜单的方法

  下拉菜单设置方法 1.首先打开WPS表格,选择要设置下拉菜单的单元格,然后切换"数据"选项卡,单击"有效性",如图所示. 2.弹出"数据有效性"设置窗口,在"设置"选项卡里将"允许"设置为"序列","提供下拉箭头"要勾上,"来源"输入要设置下拉菜单的内容,然后单击"确定",如图所示. 3.确定后,下拉菜单就设置完成,请看效果

Excel中使用列表法制作动态下拉菜单的方法

  Excel中使用列表法制作动态下拉菜单的方法           谈起建立动态数据有效性,很多小伙伴会立刻想起OFFSET函数.然而利用OFFSET函数制作动态数据有效性,对于函数小白来说,颇难理解.且不易操作.今天大家分享一个简便的方法:Excel中使用列表法制作动态下拉菜单的方法. 如上图,E列是员工花名册名单,在B列建立数据有效性,要求数据有效性的列表菜单,可以根据员工花名册人名的增加而有相应的变化.--简而言之,就是建立一个简易的动态数据有效性喽. 1.创建"表" 单击将作