0

JSON データへのアクセスに問題があります。私はJSONとjqueryを初めて使用するので、おそらく簡単な解決策があり、喜んで見つけます。

私のjQuery:

  $.post(
    "currentPage.php",
    { 
    'currentPage': 1
    },
    function(data){
      $("body").append(data);  
    }
  );

currentPage.php:

$returnArray['left'] = 'test_left';
$returnArray['right'] = 'test_right';

$returnArray['numLeft'][] = 1;
$returnArray['numRight'][] = 2;
$returnArray['numRight'][] = 3;

print json_encode($returnArray);

私はこのようなデータにアクセスしようとしました:

data.left
data['left']

しかし、それは空白を返します.HTMLファイルのデータにアクセスする最良の方法は何ですか?

4

3 に答える 3

2

post私は間違っている可能性がありますが、このメソッドはデータリターンタイプのjsonを想定していないと思います。これは、ajax関数を次のように変更することで設定できます。

  $.post(
    "currentPage.php",
    { 
    'currentPage': 1
    },
    function(data){
      $("body").append(data);  
    },
    "json"
  );
于 2010-04-12T13:28:41.743 に答える
1

JQueryでは、戻りデータ型(dataType)をに設定しjsonて、関数が予期して処理するデータの種類を認識できるようにする必要があります。マニュアルから:

"json":応答をJSONとして評価し、JavaScriptオブジェクトを返します。jQuery 1.4では、JSONデータは厳密な方法で解析されます。不正な形式のJSONはすべて拒否され、解析エラーがスローされます。(適切なJSONフォーマットの詳細については、json.orgを参照してください。)

これは、完全な$ .ajax()呼び出しで行うか、 $。getJSON()を使用できます。JSONを返すHTTPPOSTショートカットはありません(つまり、$。postJSONは存在しません)が、dataTypeパラメーターをに指定する$.ajax()か、パラメーターをに追加することができます$.post()JSONオブジェクトがある場合は、を使用json.keyNameしてデータにアクセスします。

$.ajax({
    url: "currentPage.php",
    data: { 
        'currentPage': 1
    },
    dataType: "json",
    type: "post",
    success: function(data) {
        $("body").append(data);  
    }
});
于 2010-04-12T13:28:32.433 に答える
1

メソッドのパラメーターとして取得する予定のデータ型を指定し.post()ます(この場合json)。

$.post("currentPage.php",{'currentPage': 1},
  function(data){
    $("body").append(data);  
  },
  'json'     // <-- add the expected datatype
);

デフォルトでは、結果をHTMLとして扱うと思います。ドキュメントを読んでください。

jQuery.post(url、[data]、[success(data、textStatus、XMLHttpRequest)]、[dataType])

urlリクエストの送信先のURLを含む文字列。

dataリクエストとともにサーバーに送信されるマップまたは文字列。

success(data、textStatus、XMLHttpRequest)リクエストが成功した場合に実行されるコールバック関数。

dataTypeサーバーから期待されるデータのタイプ。

于 2010-04-12T13:28:38.097 に答える