2013-06-20 76 views
2

所以我有一個ajax聊天我一直在編程, 和一個命令系統。AJAX聊天 - 用戶個人提醒(命令)

基本上,我希望系統在不使用任何命令並且只發布斜線('/')並且只能由發佈它的用戶查看時給予用戶警報。

但我不確定如何使它工作。 這是我的負荷消息的方法,在聊天:

public function loadMessages($username) 
    { 
     $this->fetch = $this->pdo->prepare("SELECT * FROM messages ORDER BY date, time ASC LIMIT 30"); 
     $this->fetch->execute(); 

     while ($row = $this->fetch->fetch(PDO::FETCH_ASSOC)) 
     { 
      if ($row['isAlert'] == '1') 
      { 
       echo '<b>'.$row['date'].', '.$row['time'].' ['.$row['username'].']: </b><font color="red">'.$row['message'].'</font> <br />'; 
      } 
      else 
      { 
       echo '<b>'.$row['date'].', '.$row['time'].' ['.$row['username'].']: </b>'.$row['message'].' <br />'; 
      } 
     } 
    } 

你可以看到第一個if statement while循環,認爲如果消息是一個全球性的警惕,如果是,則油漆紅色。

但是,如何才能發出一條消息,只有被警告的用戶才能看到?

任何想法?

+0

請問您的聊天系統有*收件人的概念*?也就是說,您的數據庫模式是否可以專門向給定用戶表示消息,還是假設每條消息都傳遞給每個用戶?如果您希望能夠執行單播消息傳遞(不管是從系統,錯誤消息還是從用戶到用戶的私人消息傳遞),您都需要一些方式來指定消息應發送給誰,而您的數據模型是這是最好的地方。 (例如,在MySQL數據庫的情況下,您可以有一個包含用戶名或ID的「收件人」列,或者用於廣播的NULL。) –

+0

首先,''?真?第二,這應該可以在客戶端完成(即檢查輸入是命令,檢查它是否有效等)。儘管如此,這也不能讓你檢查服務器。 –

回答

0

在頁面上有一個隱藏的div,然後使用JavaScript檢查命令是否有效,如果不顯示div

例如:

<div id="invalidChatCommand" style="display:none"> 
     <p> 
      The command you entered is invalid. 
     </p> 
<div> 

<script type="text/javascript"> 
    var chatCommand = document.getElementById("command").value; 
    if (chatCommand.length == 1 && chatCommand.substring(0, 1) == "/") { 
     // invalid input detected, show the div 
     var invalidCommand = document.getElementById("invalidChatCommand"); 
     invalidCommand.style.display = "block"; 
    } else { 
     // Send command to the server 
    } 
</script> 
+0

事情是,我需要它顯示在聊天裏面,並按日期和時間排序。 –

+0

@JonyKale - 而不是使用新的div,追加到現有的 –