ホームページ >バックエンド開発 >PHPチュートリアル >PHPが配列をJSに返す際の問題

PHPが配列をJSに返す際の問題

WBOY
WBOYオリジナル
2016-06-23 14:03:00982ブラウズ

PHP 側のloadmenu.php
c0b008a360dd682ed3b1d1bad80a9fa1$page; =array();
$arrJson["key"]=$root->attributes()->key;// メニュー KEY の名前を取得します
echo json_encode($arrJson);
JSサイド
関数 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":"u8868u5355u7ba1u7406}}
なぜ {" 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:ジェイソン、
成功: function(response){
menu_back(response);

アラート(response)
関数 process_menu()
{
変数 URL = "loadmenu.php" ;
var params = {'page':nowweb};
$.ajax({
type: "POST",
url: url,
data: params,

dataType:

成功:関数(応答) {
関数 menu_back(応答)
{

関数 process_menu()
{ var url = "loadmenu.php" ;
var params = {'ページ':nowweb};
$.post(url,params,function(data){menu_back(data);});
}
$.ajax({
タイプ: "POST",
url: url ,
データ: params ,
dataType: json,
success: function(response){
menu_back(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,

you応答は文字列です。 。 json オブジェクトではありません

dataType: jason,

dataType: json,

応答は文字列です。 。 JSON オブジェクトではありません


PHP 側のloadmenu.php
5e30b12b7212caa415907ca0282a8058attributes()->key;// メニュー KEY の名前を取得します

これは問題ですか?

私が奇妙だと思うのは:

1. $root->attributes()->key はエラーを報告しないのでしょうか?

2. ポップアップ メッセージは次のとおりです: {"key":{ "0":"u8868u5355u7ba1u7406}}
この 0 はどこから来たのですか?

menu.xml のフラグメントを投稿してテストした方がよいでしょう

5 階の ohmygirl からの返信を引用します: dataType: jason,

dataType: json,

あなたの応答は文字列です。 。 json オブジェクトではありません

PHPloadmenu.php
a534db40c9db9940503cb44f519dc642attributes()->key はエラーを報告しませんか?

2. ポップアップ メッセージは次のとおりです: {"key":{"0":"u8868u5355u7ba1u7406}}
この 0 はどこから来たのですか?

menu.xml のフラグメントを投稿してテストした方がよいでしょう

1cff605fa69a1d578f39945a3babf100
5c0e96d12fc7501cef2ae2efde646ee0 9778a80101a09f254800644b6e2ac1b4 c9f87720ddd7e751dca0844b9aabf44aメンバ2fac348eac54c5d87bd5991530812cd3 1bab00463aedf309c768653eab12891c4e255cca6c1c1c2b4c46e2b80a10fe99 6dc16e7d4513358e2b62a499e414fa7ejbxxb327c3b1743615409bece3d96dd96dbd ; name>基本的な人口情報df406f776eecbaf16b62325323196f14e1aabdedfb2a6cb5d848cee82887b52f
d9d768bce22d0e57cee6472ef6e8070amemberdfd8213d49f383833922bbb28ffe8efbcf80263050a5aa0deb7fda72a15a2494 menu3> テーブル名 -->
4c4c27b639c3ad8d0ed2f0beb185b477
6dc16e7d4513358e2b62a499e414fa7edjxxb327c3b1743615409bece3d96dd96dbd 8a11bc632ea32a57b3e3693c7987c420パーティメンバーの基本情報df406f776eecbaf16b62325323196f148ddf3dbb3d49fa8c733c1622c6ac724d
d9d768bce22d0e57cee6472ef6e8070apartymemberdfd8213d49f383833922bbb28ffe8efb2081ff171f3f875f289e0d0b2e8ce555 ;/menu3>
2462cf5540496bd534f5b51f80bb3bce
8a11bc632ea32a57b3e3693c7987c420パーティーメンバーの報酬と罰の情報df406f776eecbaf16b62325323196f140e1c0b1a13272b5920309ffe9373a8d2
d9d768bce22d0e57cee6472ef6e8070apmreandpudfd8213d49f383833922bbb28ffe8efb !-- 対応するテーブル名-->

2462cf5540496bd534f5b51f80bb3bce
8a11bc632ea32a57b3e3693c7987c420/name>0e1c0b1a13272b5920309ffe9373a8d2 d9d768bce22d0e57cee6472ef6e8070apmduesbd8c5016c168d214c1df13cd6b701dbb2081ff171f3f875f289e0d0b2e8ce555
f2733efca88497ac5bd0ab1db7862b60
8a11bc632ea32a57b3e3693c7987c420党費活動管理df406f776eecbaf16b62325323196f141b82ef1a35252199c6bbbf554d80a1e0 d9d768bce22d0e57cee6472ef6e8070adymeetinginfodfd8213d49f383833922bbb28ffe8efb28e8b052d7130e645e704836a38e255b
2462cf5540496bd534f5b51f80bb3bce ;/name>< ;!-- 第 3 レベルのメニュー名 -->
d9d768bce22d0e57cee6472ef6e8070aunionmeetingdfd8213d49f383833922bbb28ffe8efb
f2733efca88497ac5bd0ab1db7862b60 menu2>
076dc838e5e0ae0382584564fce569db
1f45850ee59e057c392047b70dad940c
7c26384bdbec5c3ab0cd6032dae3eaa1メニュー名-- > 4c4c27b639c3ad8d0ed2f0beb185b477
;

e083986a812e016ef20466f844ca7465
5a9a0e9117a868e744002d2d9e892511

皆さん、この問題は中国語の文字化けが原因でしょうか?

var params = {'page':nowweb}; // これは nowweb が定義されていますか? 定義されていない場合は、まず 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の問題です。

関数 menu_back(応答)
{
応答 = eval('('+応答+')')
アラート(応答);

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。