我正在尝试显示图像,但依赖于Yii中的下拉列表。我可以从数据库中获取图像并显示它,但是如何动态地根据下拉列表中的选项进行操作?
答案 0 :(得分:1)
以下是参考资料:http://www.yiiframework.com/wiki/24/creating-a-dependent-dropdown#hh0但是,让我告诉您如何操作。
首先,我们需要一个显示图像的div;我将创建一个id为'img'的人。然后,在dropdownlist()中指定ajax请求,如下所示:
<?php echo $form->labelEx($model,'attribue'); ?>
<?php echo $form->dropDownList($model,'attribute',
array(/*The options in the DropDownList*/),
array(
'ajax'=>array(
'type'=>'POST',
'url'=>CController::createUrl('YourController/actionWhichEchoesTheImage'),
'update'=>'#img',
)));
?>
<div id="img"> // <---- the result of the ajax call will be displayed here
</div>
在'url'属性中,我们指定在ajax请求触发时将调用的函数。在'update'属性中,我们指定了div,它将显示调用该函数(图像)的结果。
最后,我们必须声明动作actionWhichEchoesTheImage()。让我们在当前的控制器中声明它。它看起来像这样:
public function actionWhichEchoesTheImage()
{
if(isset($_POST['ModelName']['attribute']))
/*Here goes your code to load the image*/
echo CHtml::image(//Check the reference to see how to set this function);
}
在这里检查CHtml :: image():http://www.yiiframework.com/doc/api/1.1/CHtml/#image-detail