非释_Ray 2014-09-25 22:33:44 5744次浏览 5条回复 2 0 0

在yii1.1中可以通过以下方式进行实现,通过上一级下拉框ajax请求和回调函数来控制下一级的内容,但是yii2.0中对'ajax'的支持貌似有改动,我不知道该加在哪里。

echo CHtml::dropDownList('idProvince', '', CHtml::listData(CActiveRecord::model('AddProvinces')->findAll(), 'provinceid', 'province'),
    array(
        'prompt' => '选择省份',
        'ajax' => array(
            'type' => 'POST',
            'url' => $this->createUrl('updateCities'),
            'dataType' => 'json',
            'data' => array('idProvince' => 'js:this.value'),
            'success' => 'function(data) {
                            $("#idCity").html(data.dropDownCities);
                            $("#idDistrict").html(data.dropDownDistricts);
                        }',
        )));

如下代码报错:

 <?= $form->field($model, 'grade')->dropDownList($arrayList,
        [
            'prompt'=>'请选择',
             'ajax'=>[
                    'type' => 'POST',
                    'url' => yii::$app->urlManager->createUrl('user/site'),
                    'dataType' => 'json',
                    'data' => ['user-grade' => 'js:this.value'],
                    'success'=>'function(data) {alert("@@");}',
             ],
        ]
)?>
亿速云
  • 回复于 2014-09-25 22:43 举报

    报错的内容是:

    PHP Warning – yii\base\ErrorException
    htmlspecialchars() expects parameter 1 to be string, array given
    

    这说明'ajax'应该不是这么用的。

  • 回复于 2014-09-25 22:50 举报

    Yii2中已经把ajax这种用法去掉了。
    应该在js中写此select的change事件。

  • 回复于 2014-09-25 22:52 举报

    这不是更麻烦了么。。好吧,依然感谢舰长!我是看您视频长大的!

  • 回复于 2014-12-06 11:53 举报

    在js中写比较好,yii 有点复杂

  • 回复于 2015-05-01 19:35 举报

    亲,你最终是怎么实现的,求指导

    觉得很赞
您需要登录后才可以回复。登录 | 立即注册