2011-12-09 14 views
0

jqueryの成功後に応答パラメータでAlertを使用すると、必要な値が表示され、問題がk/vで取り除かれます。私はこれがjson形式のものと互換性のない問題なのか、それともPHPのものなのか分かりません。キーを使用して値を取得しようとすると、何も起こりません(アラートなし)、アラートで「未定義」と表示されます。PHPからデータを取得する方法JFreeでJSONを生成する

関連するコード:

はJQuery:

var curr = $(this).val(); 
// alert(curr); 
$.ajax({ 
type: 'GET', 
url: 'CurrencyResponse.php?q='+curr, 
contentType: "application/json; charset=utf-8", 
success: function(response) { 
var items = response.d; 
// alert(response); this will display some json key value from server 
$.each(items, function (index, item) { 
// alert(item.msg); or updating some div tag here, eventless 
}); 
}, 

PHP:ここ

<?php 
// $query = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY); 
// $query = $_GET["q"]; 
$response = array(); 
$response["msg"] = "Hjksa!"; 
$response["nok"] = "9.32"; 

echo json_encode($response); 
?> 

ヘルプははるかに高く評価されます! =)

答えて

2

そうのように、jQueryのAJAXのためdataTypeパラメータを使用します。

$.ajax({ 
    type: 'GET', 
    url: 'CurrencyResponse.php?q='+curr, 
    dataType: 'json', 
    success: function(json) { 
     alert(json.msg); // Will output Hjksa! 

    } 
}); 

これは、サーバーからの応答がJSONであり、それは取るコールバック関数にJSONオブジェクトを返す必要があることというのjQueryを伝えますそれらのパラメータとしてサーバの応答。

dataTypeについては、jQuery's siteをご覧ください。

+0

Doh!そのような細かいことは私に何時間もかかった。ありがとうございます=)私は実際に以前のデータ型を持っていましたが、何か他のものがスクリプトを壊してしまっていて、データ型が何とか削除されているに違いありません。 – gorn

1

ドキュメントから判断すると、明示的に指定しない限り、MIMEタイプをレスポンスヘッダーから読み取り、使用します。したがって、PHPスクリプトのヘッダをapplication/jsonに設定するか、 "dataType"パラメータを "json"に設定します。

0

クライアントスクリプトにオブジェクトを送信することをお勧めします。これにより、データを読みやすくなります。私は数日間、同様の問題を通して働いていた

echo json_encode((object) $array); 
0

、私は

dataType: "json", 

を設定していたが、それはまだ文字列として戻って来ていました。 jqueryリクエストに加えて、私のPHPファイルのヘッダーにjsonを指定すると、私の問題が解決されました。

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

うまくいけば、誰かを助けよう!

関連する問題