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
<?
$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
{
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);
}
{
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);
}
{
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);
}
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 的片段,测试一下
先检测php那边返回数据是否正常
<?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>
不是乱码。不过是json格式下的中文的utf-8编码。urldecode可以看到正常输出的中文。不过这是没有必要的。因为js中处理json也是按照utf-8的格式处理的
$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'); //测试一下
{
response = eval('('+response+')')
alert(response);
}