繁体   English   中英

在yii依赖下拉列表中传递数据

[英]Passing data in yii dependent dropdown

我在yii1中创建了一个依赖的下拉列表,但我总是收到htmlspecialchars()的错误,期望参数1为字符串,给定对象

这是控制器动作代码

public function actionDistrictList() {
    $id = (int)$_POST['province'];

    $data = Tblsudistricts::model()->findAll('province_id=1');
    Yii::app()->session['districtlist'] = $data; //save created list to session
    echo CHtml::tag('option', array('value' => ''), CHtml::encode('[select one]'), true);
    foreach ($data as $value => $name){
        echo CHtml::tag('option', array('value'=>$value),CHtml::encode($name),true);   
        //echo CHtml::tag('option', array('value' => $value), CHtml::encode($name), true);

}}

可能是什么问题

在这里,用你的代码

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

$value是一个索引, $name是一个对象,您必须使用其参数,例如:

Chtml::encode($name->district_name)

装备:

CHtml::encode($name)

阿比舍克的答案是正确的。 但是,您也有value的问题。 $value$data数组中对象的索引,而不是id。

看起来您期望$datavalue => name类型的数组。 如果是这种情况,您应该通过CHtml::listData函数传递$data 您还可以通过使用CHtml::listOptions避免foreach循环

$data = Tblsudistricts::model()->findAll('province_id=1');
$data = CHtml::listData($data, "id", "name");
Yii::app()->session['districtlist'] = $data;
echo CHtml::listOptions(null, $data, array('prompt' => '[select one]'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM