2015-07-20 43 views
1

我想知道爲什麼代碼只能在消息回覆的最後一行工作,我無法回覆最新的消息,但我可以回覆最後一條消息,消息正在遞減。Php私人消息回覆只在最後一行發揮作用?

請看一看messages.php:

<form action="read_message.php" method="post"> 
<div class="pull-right"> 
    <button class="btn btn-info" name="read"><i class="icon-check"></i> Read</button> 

    Check All <input type="checkbox" name="selectAll" id="checkAll" /> 
    <script> 
     $("#checkAll").click(function() { 
      $('input:checkbox').not(this).prop('checked', this.checked); 
     }); 
    </script>     

</div> 

<ul class="nav nav-pills"> 
    <li class="active"><a href="messages.php"><i class="icon-envelope-alt"></i>inbox</a></li> 
    <li class=""><a href="sent_message_user.php"><i class="icon-envelope-alt"></i>Send messages</a></li> 
</ul> 

<?php 
$query_announcement = mysql_query("select * from message_received 
                  LEFT JOIN user ON user.user_id = message_received.user_id 
                  where message_received.receiver_id = '$session_id' order by date_sent DESC 
                  ")or die(mysql_error()); 
$count_my_message = mysql_num_rows($query_announcement); 
if ($count_my_message != '0') { 
    while ($row = mysql_fetch_array($query_announcement)) { 
     $id = $row['message_id']; 
     $id_2 = $row['message_id']; 
     $fn = $row['firstname']; 
     $ln = $row['lastname']; 
     $status = $row['message_status']; 
     $sender = $row['user_id']; 
     $sender_name = $fn . ' ' . $ln; 

     $receiver = $row['receiver_id']; 
     ?><div class="alert alert-info"> 
      <div class="post" id="del<?php echo $id; ?>"> 
       <div class="message_content"> 
        <?php echo $row['content']; ?> 
       </div> 
       <div class="pull-right"> 
        <?php if ($status == 'read') { 

        } else { 
         ?> 
         <input id="" class="" name="selector[]" type="checkbox" value="<?php echo $id; ?>"> 
    <?php } ?> 
       </div> 
       <hr> 
       Send by: <strong><?php echo $fn . ' ' . $ln; ?></strong> 
       <i class="icon-calendar"></i> <? php echo $row['date_sent']; ?> 
       <div class="pull- right"> 
        <a class="btn btn-link" href="#reply<?php echo $id; ?>" data-toggle="modal" ><i class="icon-reply"></i> Reply </a> 
       </div> 
       <div class="pull-right"> 
        <a class="btn btn-link" href="#<?php echo $id; ?>" data-toggle="modal" ><i class="icon-remove"></i> Remove </a> 
        <?php include("remove_inbox_message_modal.php"); ?> 
    <?php include("reply_inbox_message_modal_user.php"); ?> 
       </div> 
      </div> 
     </div> 

    <?php } 
} else { ?> 
    <div class="alert alert-info"><i class="icon- info-sign"></i> No Message Inbox</div> 
<?php } ?>  
</form> 

現在,這是read_message.php的功能,我看不到任何錯誤,請幫助我。

<?php 

if (isset($_POST['reply'])) { 
$sender = $_POST['sender']; 
$receiver = $_POST['receiver']; 

$my_message = $_POST['my_message']; 


mysql_query("insert into message_received (user_id,receiver_id,content,date_sent) values('$receiver','$sender','$my_message',NOW())")or die(mysql_error()); 
mysql_query("insert into message_sent (receiver_id,content,date_sent,user_id) values('$sender','$my_message',NOW(),'$receiver')")or die(mysql_error()); 
echo "<script> alert('Your message has been sent $my_message') </script>"; 
echo " <script>location.replace('messages.php')</script>"; 
?> 
<script> 
    alert('Message Sent'); 
    window.location = "messages.php"; 
</script> 
<?php 

} 
?> 

現在是這樣的答覆模態代碼,

<!-- Modal --> 
<div id="reply<?php echo $id; ?>" class="modal hide fade" tabindex="-1"  role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
<div class="modal-header"> 
<button type="button" class="close" data-dismiss="modal" aria- hidden="true">x</button> 
<h3 id="myModalLabel">Reply</h3> 
</div> 
<div class="modal-body"> 
<center> 

<div class="control-group"> 
    <label class="control-label" for="inputEmail">To:</label> 
    <div class="controls"> 
     <input type="hidden" name="sender" id="inputEmail" value="<?php echo $sender; ?>" readonly> 
     <input type="hidden" name="receiver" id="inputEmail" value="<?php echo $receiver; ?>" readonly> 
     <input type="hidden" name="uid" id="inputEmail" value="<?php echo $uid; ?>" readonly> 
     <input type="hidden" name="my_name" value="<?php echo $reciever_name; ?>" readonly> 
     <input type="text" name="name_of_sender" id="inputEmail" value="<?php echo $sender_name; ?>" readonly> 
    </div> 
    </div> 
    <div class="control-group"> 
    <label class="control-label" for="inputPassword">Content:</label> 
    <div class="controls"> 
     <textarea name='my_message'></textarea> 
    </div> 
    </div> 
    <div class="control-group"> 
    <div class="controls"> 
    <button type="submit" name="reply" id="<?php echo $id; ?>" class="btn btn-success reply"><i class="icon-reply"></i> Reply</button> 
    </div> 
    </div> 

</center> 
</div> 
<div class="modal-footer"> 
<button class="btn" data-dismiss="modal" aria-hidden="true"><i class="icon-remove icon-large"></i> Close</button> 
<button id="<?php echo $id; ?>" class="btn btn-danger remove" data- dismiss="modal" aria-hidden="true"><i class="icon-check icon-large"></i> Yes </button> 
</div> 

當我回復發送消息的消息,但沒有內容,但來自發件人,日期和時間數據被保存在數據庫中,但是在最下面一行,這一切運作良好?請幫幫我。謝謝

回答

0

你有它的消息模態窗口在一種形式。

因此,只有您只有一條消息時,您的解決方案纔有效。如果發送回覆時有更多消息,請發送每條消息的所有回覆(其一種形式),並且每個回覆內容具有相同的名稱。

出於這個原因,你的服務器獲得空$ _ POST [「my_message」]

你需要爲每個響應自己的形式,它會工作。像這樣:

<form action="read_message.php" method="post"> 
<!-- Modal --> 
<div id="reply<?php echo $id; ?>" class="modal hide fade" tabindex="-1"  role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
<div class="modal-header"> 
<button type="button" class="close" data-dismiss="modal" aria- hidden="true">x</button> 
<h3 id="myModalLabel">Reply</h3> 
</div> 
<div class="modal-body"> 
<center> 

<div class="control-group"> 
    <label class="control-label" for="inputEmail">To:</label> 
    <div class="controls"> 
     <input type="hidden" name="sender" id="inputEmail" value="<?php echo $sender; ?>" readonly> 
     <input type="hidden" name="receiver" id="inputEmail" value="<?php echo $receiver; ?>" readonly> 
     <input type="hidden" name="uid" id="inputEmail" value="<?php echo $uid; ?>" readonly> 
     <input type="hidden" name="my_name" value="<?php echo $reciever_name; ?>" readonly> 
     <input type="text" name="name_of_sender" id="inputEmail" value="<?php echo $sender_name; ?>" readonly> 
    </div> 
    </div> 
    <div class="control-group"> 
    <label class="control-label" for="inputPassword">Content:</label> 
    <div class="controls"> 
     <textarea name='my_message'></textarea> 
    </div> 
    </div> 
    <div class="control-group"> 
    <div class="controls"> 
    <button type="submit" name="reply" id="<?php echo $id; ?>" class="btn btn-success reply"><i class="icon-reply"></i> Reply</button> 
    </div> 
    </div> 

</center> 
</div> 
<div class="modal-footer"> 
<button class="btn" data-dismiss="modal" aria-hidden="true"><i class="icon-remove icon-large"></i> Close</button> 
<button id="<?php echo $id; ?>" class="btn btn-danger remove" data- dismiss="modal" aria-hidden="true"><i class="icon-check icon-large"></i> Yes </button> 
</div> 
</form> 
+0

感謝你的幫助,現在的工作,從未有過的一個想法作爲一個新手嘿嘿 –

0

PHP變量不用單引號分析。您需要更新您的SQL查詢以使用雙引號或不帶引號的PHP變量。

insert into message_sent (receiver_id,content,date_sent,user_id) values("$sender","$my_message",NOW(),"$receiver") 

這就是爲什麼只有日期正在保存。

清除數據庫中的消息,更新查詢(多個)並重試。然後,回報一個更新,我會再看看它。

+0

謝謝大家的幫助,願上帝保佑所有的幫助, –