Yii:在ajax响应之后更新HTML

时间:2013-07-02 15:05:00

标签: php ajax yii

我正在尝试根据输入文字显示数据。

我创建了一个启用了ajax的输入:

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);
    }

2 个答案:

答案 0 :(得分:3)

你的ajax电话是非常错误的。你没有将任何数据传递给控制器​​,这就是为什么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);

            } ',

        )));

你的控制器很好。希望这有用。

答案 1 :(得分:0)

请你在没有'数据'数组索引的情况下尝试一下,告诉我们会发生什么?

你可以看看这个wiki来完成你想要做的事情。 http://www.yiiframework.com/wiki/24/