2017-11-25 35 views
0

我有一個html頁面,它上面有一個觸發ajax請求的php頁面。到現在爲止還挺好。動態PHP響應

我有一個數據庫消息它有列「ID」,「接收器」,「發件人」,「消息」。

假設我有兩個相同的接收者和發送者。消息是不同的。

現在點擊按鈕後,消息應顯示在單獨的段落<p>Message 1</p><p>Message 2</p>中。

我的問題是,我不知道會有多少消息,並且按鈕點擊應該顯示它們全部。我已經嘗試了一段時間循環,但無法讓它正常工作。另外JQuery如何處理這樣的事情?

我至今PHP:

$thuser = $_SESSION['username']; //this user 
$sql = "SELECT * FROM messages WHERE receiver = '$thuser'"; 

if ($result = mysqli_query($link, $sql)) { 

    while ($row = $result->fetch_row()) { 
    ... 
    }); 

} 

如果可能的話,我想一個數組作爲方含所有消息 { 'MESSAGE1'=> '你好', '消息2'=>「到底是怎麼回事的反應如何? ',message n =>'blah'}

感謝您的幫助!你的情況

+0

這是相當廣泛的。你用'Jquery'試過了什麼? – Akintunde007

+0

@ D.Krold你應該創建一個php文件來處理來自jquery的ajax請求。 PHP將返回JSON數組中所有消息的列表。你會在ajax成功的前端收到。使用該數組來運行循環並使用jquery在頁面中打印頁面。 如果還需要更多幫助,請隨時發表評論。 –

+0

'...'是無效的PHP。如果您在PHP文件中輸出HTML,您可以簡單地在js中獲取請求,並將響應添加到dom(頁面),並直接在頁面上隨意顯示。請注意,大多數人都同意從服務器(PHP)輸出JSON並在JS中處理是實現此目的的方法。您應該使用您的Web瀏覽器開發工具來檢查獲取請求以查看它接收到的輸出。如果輸出是錯誤的,那麼這是一個PHP問題,如果你很難用JS獲得輸出在頁面上顯示,那麼這是一個JS問題。你需要弄清楚哪一個是第一個 – JimL

回答

1

使用數組:

$message=array(); 

$thuser = $_SESSION['username']; //this user 
$sql = "SELECT * FROM messages WHERE receiver = '$thuser'"; 

if ($result = mysqli_query($link, $sql)) { 
$i=1; 
    while ($row = $result->fetch_row()) { 
    $st='Message'.$i; 
    $message[$st]=$row['message']; 
    $i++; 
    }); 

} 
print_r($message); 
+0

非常感謝! –