douleijiang8111 2015-07-20 11:57
浏览 69
已采纳

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

I am wondering why the code only works on the last row of the message reply, I can't reply on the latest message but I can reply on the last message, the messages are descending.

Please take a look at 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> 

NOW THIS is the function for read_message.php, I can't see any error, please help me.

<?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

}
?>

now this is the reply modal codes,

 <!-- 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>

when I reply to a message the message is sent but it has no content but data from sender, date and time is saved in the database, but in the lowest row, it all functions well? please help me. thank you

  • 写回答

2条回答 默认 最新

  • dongxie2749 2015-07-20 12:22
    关注

    You have it your message modal window in one form.

    So your solution works only if you have only one message. If you have more messages when you send your response send all responses for each message (its one form) and each response content have same name.

    For this reason your server obtains empty $_POST['my_message']

    You need have for each response own form and it will works. like this:

    <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>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度