2012-01-11 5 views
0

이미지를 표시하려고하지만 Yii의 드롭 다운 목록에 종속됩니다. 데이터베이스에서 이미지를 가져 와서 표시 할 수 있지만 드롭 다운의 선택에 따라 동적으로 수행하는 방법은 무엇입니까?Yii 동적으로 드롭 다운에 따라 이미지 표시

+0

정보가 충분하지 않음을,하지만 당신은 전화를 할 때마다 * 모든 * 이미지를 미리로드 중 필요하거나 AJAX를 만들 것 드롭 다운이 변경되었습니다. – Jon

+0

죄송합니다. 드롭 다운이 변경 될 때마다 아약스 호출을해야합니다. – user1142175

답변

1

여기는 참조 번호 : http://www.yiiframework.com/wiki/24/creating-a-dependent-dropdown#hh0입니다. 어떻게하는지 보여 드리겠습니다.

먼저 모두 이미지가 표시 될 div가 필요합니다. 나는 id가 'img'가 될 사람을 만들 것입니다.

'URL'에서
<?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> 

우리가 아약스 요청을 트리거 할 때 호출되는 함수를 지정 속성 다음() 그런 다음, 아약스 요청은 드롭 다운리스트 내에서 지정됩니다. 'update'속성에서 우리는 div 함수를 호출 한 결과를 표시 할 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 :: 이미지() 여기 : 그것은이 같은 보일 것 http://www.yiiframework.com/doc/api/1.1/CHtml/#image-detail

+0

답장을 보내 주셔서 감사합니다. 드롭 다운에 이미 아약스 액션이있는 경우 두 가지 별도 액션을 호출하고 div 및 다른 드롭 다운을 업데이트 할 수 있습니까? – user1142175

+0

예, 가능하지만 일부 jQuery 코드가 필요합니다. 내 관점에서 말하면, 그것은 완전히 다른 질문입니다. 아마도 게시 할 수 있습니다. 그것은 좋은 것입니다. –

+0

확인. 할 것이다. 감사! – user1142175

관련 문제