2013-07-02 6 views
0

입력 텍스트를 기반으로 데이터를 표시하려고합니다.Yii : Ajax 응답 후 HTML 업데이트

제작 한 아약스 지원 입력 :

echo CHtml::textField("input_tracking",'',array('id'=>'input_tracking','ajax' => array(
'type' =>'POST', 
'url' => CController::createUrl('report/getTracking'), 
'update' => '#tracking_result', 
'data' => 'html' 
))); 

하지만 빈 $ _POST를 전송. 내가 뭘 잘못하고있어?

내 컨트롤러 코드 :

$data=MyModel::model()->findAll('tracking=:input_tracking', 
     array(':input_tracking'=>(int) $_POST['input_tracking'])); 

    $data=CHtml::listData($data,'id','name'); 
    foreach($data as $value=>$name) 
    { 
     echo CHtml::tag('option', 
      array('value'=>$value),CHtml::encode($name),true); 
    } 

답변

3

귀하의 아약스 전화는 매우 잘못되었습니다. 컨트롤러에 데이터를 전달하면 POST가 비어있는 것입니다. 이렇게해야합니다 :

  'ajax' => array(
      'type' => 'POST', 
      'url'=>$this->createUrl('report/getTracking'), 
      'update' => '#tracking_result',       
      'data'=>array('input_tracking'=>'js:this.value',), 
//If this wont work replace update with success function   
    'success'=> 'function(data) {            
     $("#tracking_result").empty(); 
     $("#tracking_result").append(data); 

      } ', 

     ))); 

컨트롤러가 정상입니다. 희망이 도움이되었다.

+0

네가 맞아. 이 솔루션은 정말 잘 작동합니다. – PsychoX

0

당신은 '데이터'배열 인덱스없이 시도하고 어떻게되는지 말씀해 주시겠습니까?

당신이하려고하는 것과 같은 것을 달성하기 위해이 위키를 살펴볼 수 있습니다. http://www.yiiframework.com/wiki/24/