从ajax返回一个变量来查看

时间:2013-09-19 12:29:12

标签: php jquery yii

我是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之外得到它。提前谢谢。

1 个答案:

答案 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动作的内容。