2012-04-17 3 views
1

私は$.getJSONをPHPの配列で使用することについて把握しようとしています。learn getjson

私がしたいのは、要求された情報を出力するという単純な例です。 alert(data)は配列オブジェクトを返しますか?私は何も警告していない。

PHPファイル(account.php):

$arr = array('items' => 5,'others' => 6); 
echo $arr = json_encode($arr) 

HTMLファイル:すべての

$("#unsubscribe").click(function() { 
    $.getJSON("account.php?", function(data) { 
     alert(data);  
    }); 
}); 
+0

試し:PHP> $編曲=配列( 'アイテム' => 5、他人 '=> 6)。 php> $ arr = json_encode($ arr); php> echo $ arr; {"items":5、 "others":6} – Andbdrew

+0

は$ .postを使用し、値はjsonエンコードされたvarを返します。 'data.items、data.others' – gorelative

答えて

2

まず、あなたがあなたのブラウザでaccount.phpをロードしようとした場合、それはおそらく良いアイデアです。

{"items":5,"others":6} 

ただし、これは表示されません。代わりに、Parse Errorが表示されます(予期しているのは;です)。あなたはecho行でそれを忘れてしまったからです。

このため、alertは表示されません。 PHPエラーは明らかに有効なJSONではありません。ブラウザのエラーコンソールではこれがわかります;)

+0

これに加えるべき' alert(data) 'は' [object] 'アラート(data.items + '' +)を警告します。 data.others) ' – gorelative

+0

@KolinkとMike、account.phpの配列はまさに私が見るものです。私はまったく警戒することはありません。でも、私は明らかに何か悪いことをしています。 – stevenpepe

+0

@stevenpepeあなたのJavascriptを '$(document).ready(function()#unsubscribe")に変更してください(function(){alert( 'クリックしてください'); $ .getJSON( "account.php? ")、function(data、status、xhr){ alert(status); alert(xhr.status); alert(data);});});});アラートがまったく表示されない場合は、クリックハンドラに問題があります。 – DaveRandom

0

私のプロジェクトでは、json返された配列を表示するためにダンプ関数を使用しています。 ここにある:

function dump(arr,level) { 
var dumped_text = ""; 
if(!level) level = 0; 

//The padding given at the beginning of the line. 
var level_padding = ""; 
for(var j=0;j<level+1;j++) level_padding += " "; 

if(typeof(arr) == 'object') { //Array/Hashes/Objects 
    for(var item in arr) { 
     var value = arr[item]; 

     if(typeof(value) == 'object') { //If it is an array, 
      dumped_text += level_padding + "'" + item + "'"+"\\n"; 
      if (level < 0) 
       dumped_text += dump(value,level+1); 
     } else { 
      dumped_text += level_padding + "'" + item + "' => '" + value + "'"+"\\n"; 
     } 
    } 
} else { //Stings/Chars/Numbers etc. 
    dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; 
} 
return dumped_text; 
}