写入数据时
$.post('index.php?m=Chat&a=Send_Record',{'record_str':$('#record_str').val()},function(data){
},'application/json; charset=utf-8');
json可写为 'application/json; charset=utf-8';
post给服务器为 utf-8编码,这样一来无需在服务端转换字符,即可直接存入utf-8字段
但是返回值时 如果要用think自带的
$this->ajaxReturn($vo, '表单数据保存成功!', 1);
或直接返回数组
echo json_encode($json);
使用就必须使用
将'application/json; charset=utf-8'; 替换为 josn
否则数组无法被直接使用
若返回值使用'application/json; charset=utf-8';需要
var json=eval(data);
alert(json[0]['id'])
进行自动转换
返回值使用方法
ajaxReturn()
---------------------------------------------------------------------
虚拟数组$vo
$vo['a1'] = '1234';
$vo['a2'] = '2345';
$this->ajaxReturn($vo, '表单数据保存成功!', 1);
或
$this->ajaxReturn($vo);
js中输出
data = data.data;
alert(data.a1);
-----------------------------------------------------------------------------
json_encode();
—————————————————————————
虚拟数组$json
$json = array (
0 =>
array (
'id' => '13',
'name' => '',
),
1 =>
array (
'id' => '17',
'name' => '',
)
) ;
echo json_encode($json);
此方法utf8中 中文可能会乱码 须转换输出
echo urldecode ( json_encode ($json) );
如需详细了解字符转换请 查看 另一篇文章
ajax中与PHP json_encode中全为gb2312乱码最终解决方案
js中输出
alert(data[0]['id']);
js输出的时候如果前端设置为 'application/json; charset=utf-8';则需要 使用强大的
eval();
var json=eval(data);
—————————————————————————