$page; $arrJson=array(); $arrJson["key"]=$root->attributes()->key;// 获取菜单的名称KEY echo json_encode($arrJson); ?> JS端 function process_menu() { var url ="> 跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

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 的片段,测试一下 xml version="1.0" encoding="UTF-8"? memberjbxx人口基本信息member人口户籍信息houseregdjxx党员基础信息partymember党员奖惩信息pmreandpu党费缴纳管理pmdues党费活动管理dymeetinginfo工会活动管理unionmeetingqyglcsxxfwglcsxx 各位,这个问题是不是中文乱码的问题? 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); }

相关文章