1

我是 php、jquery 和编程本身的新手。我有一个名为 Appoinments 的模型。我正在从文本字段调用 ajax 查询到控制器操作“appoinments/loaddates”。正确执行 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之外得到它。提前致谢。

4

1 回答 1

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 操作的内容。

于 2013-09-19T13:41:20.147 回答