2016-05-30 9 views
2

私のAJAX呼び出しから応答がありますが、どのようにアクセスすることができますか?jqueryでAjaxレスポンスにアクセスできないか、印刷できません

はここでここで

$.ajax({ 
     type: "POST", 
     url: '../backorderReport.php', 
     data: { from : from, to : to }, 
     dataType: "JSON", 
     success: function(data){ 
        console.log(data[0].orderID); //not printing anything 
        console.log(data);   //not printing anything 
     } 
}); 

は私のPHPファイル

$from = $_POST["from"]; 
$to = $_POST["to"]; 
$orders = $wpdb->get_results("SELECT * FROM wp_orderrecords WHERE orderDate BETWEEN '".$from."' AND '".$to."'"); 

foreach($orders as $order){ 
      $orderID = $order->orderID; 
      $orderDate = $order->orderDate; 
      $status = $order->status; 
      $clientID = $order->clientID; 
      $bill = $order->bill; 
      $ship = $order->ship; 
      $pay = $order->pay; 
      $total = $order->total; 
     $results = $wpdb->get_results("SELECT * FROM wp_clients WHERE clientID = '".$clientID."%'");  

      foreach($results as $order){ 
        $clientsName = $order->clientsName; 
      } 

      $c = str_replace(' ', " ", $clientsName); 

      $orderItem = array(
        'orderID' => $orderID, 
        'orderDate' => $orderDate, 
        'orderStatus' => $status, 
        'clientsName' => $c, 
        'bill' => $bill, 
        'ship' => $ship, 
        'pay' => $pay, 
        'total' => $total 
       ); 

      echo json_encode($orderItem); 
} 

であると私は私が応答を印刷して配置することができますどのようにこの応答

{"orderID":"26","orderDate":"2016-05-11","orderStatus":"Active","clientsName":"Pebbe\u00a0Kristel\u00a0A 
\u00a0Bunoan","bill":"Billed","ship":"Delivered","pay":"Unpaid","total":"1200.00"}{"orderID":"27","orderDate" 
:"2016-05-13","orderStatus":"Completed","clientsName":"Lovely\u00a0Carbon","bill":"Billed","ship":"Delivered" 
,"pay":"Paid","total":"4650.00"} 

を取得しています、私のAJAX呼び出しますテーブル内のデータ?ご協力ありがとうございました!

+1

使用var resultArray = $ .parseJSON(data); –

+0

'console.log(data)'が何も返さない場合は、おそらくサーバからの応答を得ていないでしょう。 – Peon

+0

@DainisAbols、どうやって私がajaxを呼び出すと、コンソールはヘッダ、ポスト、html、クッキーと一緒に応答、jsonを表示します。私は何をすべきか?私は上記の私のjson_encodeをやっていることを示すために私の質問を編集しました。 – user3383911

答えて

1

を解析する必要があります。したがって、次のようなものを得る:

{ record_1 } { record_2 } 

無効なjsonです。次のように

[{ record_1 },{ record_2 }] 

変更少しあなたのphp:

$from = $_POST["from"]; 
$to = $_POST["to"]; 
$orders = $wpdb->get_results("SELECT * FROM wp_orderrecords WHERE orderDate BETWEEN '".$from."' AND '".$to."'"); 

$records = [];  // adds an array for the records 

foreach($orders as $order){ 
     $orderID = $order->orderID; 
     $orderDate = $order->orderDate; 
     $status = $order->status; 
     $clientID = $order->clientID; 
     $bill = $order->bill; 
     $ship = $order->ship; 
     $pay = $order->pay; 
     $total = $order->total; 
    $results = $wpdb->get_results("SELECT * FROM wp_clients WHERE clientID = '".$clientID."%'");  

     foreach($results as $order){ 
       $clientsName = $order->clientsName; 
     } 

     $c = str_replace(' ', " ", $clientsName); 

     $orderItem = array(
       'orderID' => $orderID, 
       'orderDate' => $orderDate, 
       'orderStatus' => $status, 
       'clientsName' => $c, 
       'bill' => $bill, 
       'ship' => $ship, 
       'pay' => $pay, 
       'total' => $total 
      ); 
     $records[] = $orderItem; // push each order item on the array 
} 
echo json_encode($records); // echo the array 

PS:例えば、エコー、前の境界条件に関する試験をあなたのような配列をしたいです。クエリに一致するレコードが見つからず、サーバー側のソフトウェアに潜む可能性のあるその他の奇妙なものもあります。

+1

ありがとう!それは完璧に働いた! – user3383911

+0

これは助けてくれてうれしいです。 PHPバグがあなたに噛まないようにしてください:) – YvesLeBorg

0

使用JSON.parse

success: function(data){ 
     var parsedData = JSON.parse(data); 
    } 
+0

ループしていないので、 'parsedData.orderID'や' parsedData ['orderID'] 'のように' orderID'にアクセスする必要があります。 – Peon

+0

こんにちは!私はまだコンソールで何も得ていない。 – user3383911

+1

'success'関数の' dataType = 'json'''Descriptorオブジェクト引数を指定すると、文字列からオブジェクト形式に自動的に解析されます。 –

0

あなたがクエリと一致し、各レコードのため、1つの有効なJSON文字列をエコーし​​ているJSON文字列

success: function(data){ 
    var resultArray = $.parseJSON(json); 
    console.log(resultArray[0].orderID); 
    console.log(resultArray);    
} 
+0

@ user3383911この回答が役に立ちそうなら、それを受け入れてください –

+0

私はまだコンソールで何も取得していません。 – user3383911

関連する問題