Yii动态显示图像取决于下拉列表

时间:2012-01-11 02:14:15

标签: image yii

我正在尝试显示图像,但依赖于Yii中的下拉列表。我可以从数据库中获取图像并显示它,但是如何动态地根据下拉列表中的选项进行操作?

1 个答案:

答案 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