Php私信回复仅在最后一行发挥作用?

时间:2015-07-20 11:57:44

标签: php bootstrap-modal

我想知道为什么代码只适用于邮件回复的最后一行,我无法回复最新邮件,但我可以回复最后一条邮件,邮件正在降序。

请看一下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>

当我回复邮件时,邮件已发送但没有内容,但来自发件人,日期和时间的数据保存在数据库中,但在最低行,它们都运行良好?请帮我。谢谢

2 个答案:

答案 0 :(得分:0)

PHP变量不用单引号解析。您需要更新SQL查询以使用双引号或不带引号的PHP变量。

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

这就是为什么只保存日期。

清除数据库中的消息,更新查询(多个),然后重试。然后,报告更新,我将再看看它。

答案 1 :(得分: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>