PHP + json 返回值

zl2727 2014-01-09 04:53:00
前台代码
  var urlstr = "{'GID':'" + $("#hogid").val() + "','Name':'" + $("#txtName").val() + "','ProvinceID':'" + $("#ProvinceID").val() + "','CityID':'" + $("#CityID").val() + "','AreaID':'" + $("#AreaID").val() + "','Moblie':'" + $("#txtMobile").val() + "','Address':'" + $("#txtAddress").val() + "','PayType':'" + itemvalue + "'}";
alert(urlstr);
$.ajax({
url: "http://www.xxxxxx.com/car.php?data="+urlstr,
type: "GET",
async:false,
dataType:'jsonp',
jsonp: "callback",
// contentType: "application/json; charset=UTF-8",
jsonpCallback:"getgoods",
success: function (data) {
alert(data.res);
},
error: function (err) {
alert("网络加载繁忙,请刷新!");
}
});


后台代码

function gtou($s) { return iconv('gbk', 'utf-8', $s); }
$arr = $_REQUEST;
$data=$arr['data'];
$data=gtou($data);
$data=json_decode($data,true);
//print_r($data);

$aa = array(
'res'=>$data["Name"],
);
$aa = json_encode($aa);
echo "getgoods($aa)";

我想实现 前台传一个json格式的字符串给PHP文件 然后PHP文件接收到值 转换成数组 读取j数组值 在返回前台

现在是可以接到$data值 但是转不成数组
字符串中有中文 所以我先将json转成UTF8 然后将json转数组 但是不成功

但我这样写是可以的

$data='{"Name":"1231","ProvinceID":"河北省","CityID":"石家庄市","AreaID":"市辖区","Moblie":"15810691206","Address":312312,"PayType":"0"}';
$data=gtou($data);
$data = '{"name":"zhangsan","age":20,"sex":"nan"}';
print_r($data);
...全文
82 点赞 收藏 3
写回复
3 条回复
xuzuning 2014年01月09日
已经说了,你看看收到的数据就知道怎么做了
回复 点赞
zl2727 2014年01月09日
引用 1 楼 xuzuning 的回复:
jquery 的 jsonp 传过来的数据不是 json ,多了个回调函数名 所以你不能简单的用 json_decode 还原 你打印出接受到的数据就看到了
我就是用jsonp 需要跨域的 您说的不能简单的用 json_decode 还原 那怎么还原呢?
回复 点赞
xuzuning 2014年01月09日
jquery 的 jsonp 传过来的数据不是 json ,多了个回调函数名
所以你不能简单的用 json_decode 还原

你打印出接受到的数据就看到了

再说,传过来的数据本身就是 utf-8 编码的。你再转码就出错了
回复 点赞
发动态
发帖子
基础编程
创建于2007-09-28

9735

社区成员

14.0w+

社区内容

从PHP安装配置,PHP入门,PHP基础到PHP应用
社区公告
暂无公告