ajax心得体会 json

来源:互联网 发布:淘宝公告栏 编辑:程序博客网 时间:2024/05/18 12:04

写入数据时
$.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);

—————————————————————————

原创粉丝点击