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":"菜单名"}?php

解决方案 »

  1.   

    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);

      

  2.   

    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);
      

  3.   

    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);
      

  4.   

    也不对,弹出是 [object object]
      

  5.   

        dataType: jason,    dataType: json,你的response是字符串吧。。不是json对象
      

  6.   


    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);
    ?>
    这样有问题么?
      

  7.   

    我比较奇怪的是:
    1、$root->attributes()->key 不会报错吗?
    2、弹出的信息是: {"key":{"0":"\u8868\u5355\u7ba1\u7406}}
    这个 0 是从哪里来的?你最好贴出 menu.xml 的片段,测试一下
      

  8.   

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

  9.   

    var params = {'page':nowweb};  //这个 nowweb 定义了吗,如果没有,要用引号括起来
    先检测php那边返回数据是否正常
      

  10.   


    <?xml version="1.0" encoding="UTF-8"?><menu>
    <form key="表单管理">
    <menu1 key="人口管理">
    <divid>member</divid>
    <menu2 key="基本信息"><!-- 二级菜单名-->
    <ulid>jbxx</ulid>
    <menu3>
    <name>人口基本信息</name><!-- 三级菜单名-->
    <dbtable>member</dbtable><!-- 对应的表名-->
    </menu3>
    <menu3>
    <name>人口户籍信息</name><!-- 三级菜单名-->
    <dbtable>housereg</dbtable><!-- 对应的表名-->
    </menu3>
    </menu2>

    <menu2 key="党建信息">
    <ulid>djxx</ulid>
    <menu3>
    <name>党员基础信息</name><!-- 三级菜单名-->
    <dbtable>partymember</dbtable><!-- 对应的表名-->
    </menu3>
    <menu3>
    <name>党员奖惩信息</name><!-- 三级菜单名-->
    <dbtable>pmreandpu</dbtable><!-- 对应的表名-->
    </menu3>
    <menu3>
    <name>党费缴纳管理</name><!-- 三级菜单名-->
    <dbtable>pmdues</dbtable><!-- 对应的表名-->
    </menu3>
    <menu3>
    <name>党费活动管理</name><!-- 三级菜单名-->
    <dbtable>dymeetinginfo</dbtable><!-- 对应的表名-->
    </menu3>
    <menu3>
    <name>工会活动管理</name><!-- 三级菜单名-->
    <dbtable>unionmeeting</dbtable><!-- 对应的表名-->
    </menu3>
    </menu2> </menu1>

    <menu1 key="企业管理">
    <divid>qygl</divid>
    <menu2 key="测试信息"><!-- 二级菜单名-->
    <ulid>csxx</ulid>
    </menu2>
    </menu1> <menu1 key="房屋管理">
    <divid>fwgl</divid>
    <menu2 key="测试信息"><!-- 二级菜单名-->
    <ulid>csxx</ulid>
    </menu2>
    </menu1>
    </form>
    </menu>
      

  11.   


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

  12.   

    这样写$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'); //测试一下
      

  13.   

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

  14.   

    function menu_back(response)
    {
    response = eval('('+response+')')
    alert(response);