我正在尝试根据输入文字显示数据。
我创建了一个启用了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);
}
答案 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/