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条)

报告相同问题?

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line