2016-12-07 51 views
-1

您好,我正在實現簡單的AJAX請求,並希望能夠將結果從SQL SELECT查詢存儲到3個不同的ajax變量。返回多個結果與AJAX從SQL查詢在PHP

其中2個將存儲一個變量,另一個必須存儲foreach結果。

比方說,我的AJAX請求如下:

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

在那裏,我有2個結果result01和result02

在我的劇本的mysql的選擇要求是什麼返回像data內的當前狀態如下:

 $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的結果,因爲它是回聲內,在那裏將合作ntains各種迭代,然後result02例如希望把相同的查詢中只有一排,例如像:$row['date']

在這種情況下

data.result01 - 將有<tr></tr> 數據的所有代碼.result02 - 將只有一個變量是日期。

問題是如何將foreach轉儲到result01中,並且在同一時間將result02只放入同一個查詢中的一行。 $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

該解決方案是完全可行的解決方案,只需添加data = $ .parseJSON(data);將數據轉換爲數組。 –

+1

@JohnSiniger由於您使用的是jQuery Ajax調用,您可以在php腳本中調用'header(「Content-Type:application/json」);'設置內容類型的響應頭,jquery會自動解析響應您。查找內容協商以獲取更多信息。 – djdduty