php输出一个数组到js,php 返回数组给JS的问题

php端loadmenu.php

$page = $_POST ["page"];

$xml = simplexml_load_file('menu.xml');

$root=$xml->$page;

$arrJson=array();

$arrJson["key"]=$root->attributes()->key;// 获取菜单的名称KEY

echo json_encode($arrJson);

?>

JS端

function process_menu()

{

var url = "loadmenu.php" ;

var params = {'page':nowweb};

$.post(url,params,function(data){menu_back(data);});

}

function menu_back(response)

{

alert(response);

最后弹出的信息是: {"key":{"0":"\u8868\u5355\u7ba1\u7406}}

为什么不是 {"key":"菜单名"}?

回复讨论(解决方案)

function process_menu()

{

var url = "loadmenu.php" ;

var params = {'page':nowweb};

$.post(url,params,function(data){menu_back(data);});

}

$.ajax({

type: "POST",

url: url,

data: params ,

dataType: jason,

success: function(response){

menu_back(response);

}

});

function menu_back(response)

{

alert(response);

function process_menu()

{

var url = "loadmenu.php" ;

var params = {'page':nowweb};

$.ajax({

type: "POST",

url: url,

data: params ,

dataType: jason,

success: function(response){

menu_back(response);

}

});

function menu_back(response)

{

alert(response);

function process_menu()

{

var url = "loadmenu.php" ;

var params = {'page':nowweb};

$.post(url,params,function(data){menu_back(data);});

}

$.ajax({

type: "POST",

url: url,

data: params ,

dataType: json,

success: function(response){

menu_back(response);

}

});

function menu_back(response)

{

alert(response);

function process_menu()

{

var url = "loadmenu.php" ;

var params = {'page':nowweb};

$.post(url,params,function(data){menu_back(data);});

}

$.ajax({

type: "POST",

url: url,

data: param……

也不对,弹出是 [object object]

dataType: jason,

dataType: json,

你的response是字符串吧。。不是json对象

dataType: jason,

dataType: json,

你的response是字符串吧。。不是json对象

php端loadmenu.php

$page = $_POST ["page"];

$xml = simplexml_load_file('menu.xml');

$root=$xml->$page;

$arrJson=array();

$arrJson["key"]=$root->attributes()->key;// 获取菜单的名称KEY

echo json_encode($arrJson);

?>

这样有问题么?

我比较奇怪的是:

1、$root->attributes()->key 不会报错吗?

2、弹出的信息是: {"key":{ "0":"\u8868\u5355\u7ba1\u7406}}

这个 0 是从哪里来的?

你最好贴出 menu.xml 的片段,测试一下

引用 5 楼 ohmygirl 的回复:dataType: jason,

dataType: json,

你的response是字符串吧。。不是json对象

php端loadmenu.php

$page = $_POST ["page"];

$xml = simplexml_load_file('menu.xml');

$root……

header("content-type:application/json;charset=.............");

var params = {'page':nowweb}; //这个 nowweb 定义了吗,如果没有,要用引号括起来

先检测php那边返回数据是否正常

我比较奇怪的是:

1、$root->attributes()->key 不会报错吗?

2、弹出的信息是: {"key":{"0":"\u8868\u5355\u7ba1\u7406}}

这个 0 是从哪里来的?

你最好贴出 menu.xml 的片段,测试一下member

jbxx

人口基本信息

member

人口户籍信息

housereg

djxx

党员基础信息

partymember

党员奖惩信息

pmreandpu

党费缴纳管理

pmdues

党费活动管理

dymeetinginfo

工会活动管理

unionmeeting

qygl

csxx

fwgl

csxx

各位,这个问题是不是中文乱码的问题?

var params = {'page':nowweb}; //这个 nowweb 定义了吗,如果没有,要用引号括起来

先检测php那边返回数据是否正常

PHP那边没有问题

各位,这个问题是不是中文乱码的问题?

不是乱码。不过是json格式下的中文的utf-8编码。

urldecode可以看到正常输出的中文。不过这是没有必要的。因为js中处理json也是按照utf-8的格式处理的

这样写$page = $_POST ["page"];$xml = simplexml_load_file('menu.xml'); if($root = $xml->$page) { //可能传过来的参数是无效的 $arrJson = array(); $arrJson["key"] = current($root->attributes()->key);// 获取菜单的名称KEY echo json_encode($arrJson);} function process_menu(nowweb) { var url = "loadmenu.php" ; var params = {'page':nowweb}; $.post(url,params,function(data){ menu_back(data); }, 'json');}function menu_back(response) { alert(response.key);}process_menu('form'); //测试一下

你先直接访问php看输出有没有问题,如果有问题,就是php那边的问题

function menu_back(response)

{

response = eval('('+response+')')

alert(response);

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值