我是php,jquery和编程本身的新手。我有一个名为Appoinments的模型。我正在调用从文本字段到控制器动作'appoinments / loaddates'的ajax查询.ajax查询正确执行。但是从ajax动作我想得到一些变量到视图。有人可以帮我请怎么做?
我的观点
echo CHtml::activehiddenField($model,'doctor',array(
'onchange'=>CHtml::ajax(array(
'type'=>'POST',
'url'=> CController::createUrl('loadDates'),
'update'=>'#nick_result',
'dataType'=>'json' ,
'select'=>"js:function(event, ui) {
$('#nick_result').val(ui.item.x);
}"
))
));
<div id="nick_result">
</div>
我的控制器
$arr[] = array(
'x'=>$x, //this I need in view
'y'=>$y,
'z'=>$z,
'p'=>$q,
);
echo CJSON::encode($arr);
如何将$ x值作为php中的变量获取,因为我的表单中的datepicker使用它。任何帮助表示赞赏。需要注意的是,我只需要一个变量来获得更新,而不是模型属性。我只是想在javascript之外得到它。提前谢谢。
答案 0 :(得分:2)
要实现此目的,您需要在视图中使用ajax回调。例如:
echo CHtml::activehiddenField($model, 'doctor', array(
'onchange'=>CHtml::ajax(array(
'type'=>'POST',
'url'=> CController::createUrl('loadDates'),
'update'=>'#nick_result',
'dataType'=>'json',
'select'=>"js:function(event, ui) { $('#nick_result').val(ui.item.x); }"
'success'=>'js:function(data){
//do here what you want to do. Your json encoded array will be passed as data
}'
))
));
我建议使用firebug,在控制台中你可以看到你在post / get和ajax回调(数据)中发送给ajax动作的内容。