2016-12-07 8 views
-1

こんにちは私は単純なAJAXリクエストを実現しており、SQL SELECTクエリの結果を3つの異なるajax変数に格納したいと考えています。PHPでのsqlクエリからAJAXで複数の結果を返します

これらのうち2つは変数を格納し、もう1つはforeach結果を格納する必要があります。

のは、私のAJAX要求を言ってみましょう

は以下の通りです:私は dataのように返しているものをmysqlの選択要求内の私のスクリプトの現在の状態では2つの結果result01とresult02

を持つことになります

$.post('includes/check_number.php', {'date':date, 'userid':userid}, function(data) { 
       $("#time-result").html(data.result01); 
       $("#time-sum-result").html(data.result02); 

 $stmt = $con->prepare($sql);      
     $stmt->setFetchMode(PDO::FETCH_ASSOC); 
     $stmt->execute();  
foreach($stmt as $row) { 
      echo "<tr> 
        <td>".$row['clientname']."</td> 
        <td>".$row['taskname']."</td> 
        <td>".$row['department']."</td> 
        <td>".$row['note']."</td> 
        <td>".$row['caseid']."</td> 
        <td>".$row['time']."</td>                   
        </tr>";      
      } 

私はそれがエコーの内部にあるので、forreachの結果を入れたいと思います<tr></tr> データのすべてのコードを有するであろう -

data.result01この場合$row['date']

:ntains次いで例えばresult02ためのような、例えば、同じクエリの1行のみ置くために、様々な反復とを希望.result02 - 日付の変数は1つだけです。

質問は、foreachをresult01にダンプし、同じクエリーからresult02を1行だけ入れる方法です。 $stmt

+3

JSONをご覧ください。 –

答えて

2

すべてのデータを最初にエクスポートしてからjqueryで使用しますか? のような何か:

PHP:

foreach($stmt as $row) { 
    $arr_out[] = $row; 
} 
echo json_encode($arr_out); 
exit(); 

のjQuery:

var result1 = ""; 

$.post('includes/check_number.php', {'date':date, 'userid':userid}, function(data) { 
    $.each(data, function(key, item) { 
    result1 += "<tr><td>"+item.clientname+"</td>[...]<td>"+item.time+"</td></tr>"; 
    result2 = item.date; 
    }); 
    $("#time-result").html(result1); 
} 

私はこのコードをテストしていないが、それはあなたを助けることを願っています。

+0

その解決策はデータ= $ .parseJSON(data)を追加するだけの完全な解決策です。データを配列に変換します。 –

+1

@JohnSiniger jquery ajax呼び出しを使用しているので、PHPのスクリプトで 'header(" Content-Type:application/json ");を呼び出してコンテンツタイプのレスポンスヘッダを設定し、jqueryは自動的にレスポンスを解析します君は。詳細情報のためのコンテンツネゴシエーションを検索します。 – djdduty

関連する問題