2011-09-08 11 views
2

私は上記のタイトルを少し前に「仕事にjqueryでゲットしてください」と題して質問し、誰もが跳んだコードにばかげたミスを犯しました。私はそれを修正しましたが、.get()は動作していないようです。それは、身体の底にJohnと2pmという名前を印刷するはずであり、それはそうではありません。私のパス名は正しいです。助けてもらえますか?jquery内の.get()。

<html> 
<head> 
<title>Testing Site</title> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
     $("#id").click(function(){ 
      $('#hello').css('background-color', 'blue'); 
      $.get("test.php", 
       function(data){ 
        $('body').append("Name: " + data.name) //John 
        .append("Time: " + data.time);   //2pm 
        $('body').css('background-color',  'red'); 
       }, "json"); 
     }); 
}); 
</script> 

</head> 
<body> 
<span id="hello">Hello World!</span> 
<input type="button" id="id" value="Click Here"></input> 
</body> 
</html> 

HERESにPHP

<?php echo json_encode(array("name"=>"John","time"=>"2pm")); 
?> 
+6

FireBug Consoleには何が表示されますか? AJAXリクエストが行われていますか?どんな風に見えますか?サーバーは何を応答しますか? –

答えて

0

あなたはJSONを期待することを言っています。あなたはjsonを送りますか?あなたのPHPファイルの先頭に

header('Content-type: application/json'); 

を追加してください。

+2

ヘッダーの種類がなくても動作するはずですが、実際にはこれをPHPスクリプトに含めないでください。jQueryはJSONを解析するためにも動作します。 – MacMac

+0

いいえ、何もしなかった – Joseph

+0

"json"引数を削除して、デフォルトで "intelligent guess"にして、それが何であると思っているのかを解析しようとします。 –

1

jQuery .getJSON()関数を使用する方が良いかもしれませんし、現在のようにJSONとしてデータを解析することもできます。

jQuery getJSON

+0

+1 - これはバージョン間でうまく動作します –

0

あなたが使用しているのjQueryのバージョンは何?私が1.3.2にすべて戻ると、私はあなたの問題を再現することができます。 1.4からは、予想通りに動作するようです。 data変数の場合は、console.logと表示されます。 1.3.2では、文字列が出力として表示され、1.4+ではオブジェクトが表示されます。


GStoが示唆するように

は、 $.getJSONを使用しても、バージョン1.3.2で、動作します。

+0

"console.log your data"はどういう意味ですか?そして、私はバージョン1.6.2を持っています... – Joseph

+0

JavaScriptの 'console'オブジェクトを使用していないなら、何かが欠けています:)それは[Safari](https://developer.apple.com/library/)でネイティブに利用できます。 Safari /#documentation/AppleApplications/Conceptual/Safari_Developer_Guide/DebuggingYourWebsite/DebuggingYourWebsite.html)とChromeと[Firebug in Firefox](https://getfirebug.com/wiki/index.php/Console_API)を使用してください。コールバックメソッドに 'console.log(data)'を追加すると、 'data'が何であるかを見ることができます。 JSオブジェクトの場合、文字列はリテラルとして表示されますが、コンソールには別のものが表示されます。 –