基本于Yii 的ajax json请求 接收处理

(原文:http://lei3056.blog.163.com/blog/static/39532279201181105142902/)

CGridview:

array(

'name'=>'remark',

'type'=>'raw',

'value'=>'CHtml::textField("remark",$data->remark,array(

"size"=>7,

//"readonly"=>"readonly",

"class"=>"textfix",

"id"=>"$data->id",

))'

),

这段落了哈。现在补上。


view:未输出的

Yii::app()->clientscript->registerScript('posiiton','

    jQuery("#person-grid .textfix").live("change",function() {//jquery 的 live 方法实在js用得多的网站不能少了

        if(!confirm("确定要fix这条数据吗?")) return false;

        var id = $(this).attr("id");

        var val = $(this).val();

        $.ajax({

            type:"POST",

            dataType:"json",//dataType (xml html script json jsonp text)

            data:{"id":id,"val":val},//json 数据

            url:"'.Yii::app()->createUrl("/admin/person/updateremark/").'",//YII 的生成地址

            success:function(json) {//成功获得的也是json对象

                //$.fn.yiiGridView.update("ad-grid");

                alert(json.val);//对象中的val属性

                $(this).val(json.val);

                //alert("success")

            }

        });

        return false;

    });

');

html:输出最后的结果

jQuery("#person-grid .textfix").live("change",function() {

if(!confirm("确定要fix这条数据吗?")) return false;

var id = $(this).attr("id");

var val = $(this).val();

$.ajax({

type:"POST",

dataType:"json",

data:{"id":id,"val":val},

url:"/admin.php?r=admin/person/updateremark",

success:function(json) {

//$.fn.yiiGridView.update("ad-grid");

alert(json.val);

$(this).val(json.val);

//alert("success")

}

});

return false;

});

controller:接收json ajax 请求

public function actionUpdateRemark(){

if(Yii::app()->request->isAjaxRequest){//是否ajax请求

$id =  (int)Yii::app()->request->getParam('id');//getparam 会获得 get post 变量 ,原来也可以接收json处理后的变量

$val = Yii::app()->request->getParam('val');

$model = $this->loadModel($id);

$model->remark = $val;

if($model->save()){

echo CJSON::encode(array('val'=>$model->remark));//Yii 的方法将数组处理成json数据

}

}

}

 

之前我的另一篇关于CJSON的文章

补充一下,在编辑都在UTF-8的环境下,没有乱码问题。

在IE下边的JS数据传输上,JQUERY 和YII 都做得很好,如果用GET的话就出现中文问题,用JSON没有问题。

你可能感兴趣的:(yii)