[英]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。
看起来您期望$data
的value => 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.