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

5年以前  |  阅读数:482 次  |  编程语言: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;
    }
 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例