0

ajaxから出力される配列形式ではなく文字列形式を取得しています

$.get('ajax/order_details.php?order_limit=true&order_limit_id=<?php echo $_GET['id']; ?>', function(data){
                                alert(data.toSource());

});

そしてこれは私がphpファイル(order_details.php)で使用しているコードです

if(isset($_GET['order_limit_id']) and isset($_GET['order_limit'])){
    $g_o = $mysql->query("SELECT * FROM ocreturn r, ocorder o WHERE o.order_id = '".$_GET['order_limit_id']."' and r.customer_id = o.customer_id");
    echo json_encode($g_o->rows);
}

そして、私は次のように出力を取得しています

(new String("[{\"return_id\":\"129\",\"order_id\":\"126450\",\"parent_status\":\"0\"}]"))

文字列ではなく配列として出力したい。

誰かが私にこれの解決策を与えることができますか

4

2 に答える 2

1

$.get関数に3番目のパラメーターとして文字列'json'を渡すことにより、応答をJSONとして解析するようにjQueryに指示できます。

$.get('ajax/order_details.php?order_limit=true&order_limit_id=<?php echo $_GET['id']; ?>', function(data){
  alert(data.toSource());
}, 'json');

jQueryの下位レベルの$ajax関数を使用する場合は、次を使用できます。

$.ajax({
  url: ajax/order_details.php,
  data: {order_limit: true, order_limit_id: <?php echo $_GET['id']; ?>},
  success: function (data) {
    alert(data);
  },
  dataType: 'json'
});

これは、への呼び出しと実質的に同じことを行います$.get。$.getメソッドは$.ajaxメソッドの省略形にすぎないことに注意してください。のjQueryドキュメントを参照してください$.get

于 2013-03-05T07:55:02.383 に答える
0

JSONを使用する必要があり、サーバーはJSON配列を返す必要があり、jqueryは文字列ではなくこのjsonを解析する必要があります。http:
//php.net/manual/en/function.json-decode.phpを参照してください。

また、jqueryは

$.getJSON("URL",function(msg){
     alert("result : "+msg);
});
于 2013-03-05T07:48:34.340 に答える