Php 如何在更新功能中获取Yii dropDownList的选定值?
我在更新模型值时遇到问题,其中一个模型属性是从下拉列表中选择的数字,以下是我的代码:Php 如何在更新功能中获取Yii dropDownList的选定值?,php,yii,Php,Yii,我在更新模型值时遇到问题,其中一个模型属性是从下拉列表中选择的数字,以下是我的代码: <?php $images = Homepage::model()->findAll(); if(!empty($images)){ $data = array(); $x = 1; f
<?php $images = Homepage::model()->findAll();
if(!empty($images)){
$data = array();
$x = 1;
foreach ($images as $i){
array_push($data, $x);
$x++;
}
?>
<?php echo $form->labelEx($model,'order'); ?>
<?php echo $form->dropDownList($model, 'order', $data, array(
'empty'=>'Select image order',
'id'=>'order')); ?>
此dropDownList包含数据库中模型(表)的记录数,问题在于更新功能,例如:在创建(图像1)时,我选择1作为顺序值,然后当我转到更新时,我得到的预选选项是2(这是listData的最后一个值),而不是1,那么这里的错误是什么呢?您需要在选项中定义所选的
'options'=>array($model->id => array('selected'=>true))
现在,您的代码大致如下所示
echo $form->dropDownList($model, 'order', $data, array(
'empty'=>'Select image order',
'id'=>'order',
'options'=>array($model->id =>array('selected'=>true))
));
试试看,这会有帮助。我不是Yii专家,但我认为你做得不对,我使用下面的代码,效果很好,我从数据库中获取id并将其显示在下拉列表中,试试看可能有帮助或检查
我认为它可能与$data变量有关 根据我使用Yii的经验,我总是使用关联数组($key=>$value)作为下拉列表 所以可能是
$data = array('1'=>'Test', '2'=>'Test 2');
这样,Test和Test 2将是下拉列表本身显示的值,“1”和“2”将是存储在$model和数据库中的值。而不是$model->id pass$x,您需要在此处传递所选值,而不是$x I passed$model->order请参见此处:
$data = array('1'=>'Test', '2'=>'Test 2');