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 的片段,測試一下
各位,這個問題是不是中文亂碼的問題?
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);
}