2011-12-04 89 views
0

我需要一点帮助,我的网站上涉及私人信息的部分之一。有问题的页面上有4个选项卡,其中一个名为收件箱的选项卡显示收到的所有消息的表格,每条消息的主题都有一个链接,可以更详细地转到显示消息的另一页面。然而,我想要的是收件箱选项卡中的内容被用于更详细地显示消息的代码替换。替换代码中的代码点击

这里是收件箱表

<div id="inbox" class="tab_content"> 
    <table id="mail_header"> 

       <tr class="mailHeader"> 
       <th>Message ID</th> 
       <th>From</th> 
       <th>Subject</th> 
       <th>Content</th> 
       <!--<th>Date Completed</th>--> 
       <th>Date Sent</th> 
       <!--<th>Refused</th>--> 

       </tr> 
         <?php 
         $sql = mysql_query("SELECT * FROM user_message WHERE id=$id"); 
         $rowCheck = mysql_num_rows($sql); 
         if ($rowCheck == 0) { 
          echo "You Have No Messages"; 
          die; 
         } 
         else { 
          while ($query = mysql_fetch_array($sql)) { 
            echo '<div id="message_content">'; 
            echo '<tr>'; 
            $message_id = $query['message']; 
            $from = $query['from']; 
            $subject = $query['subject']; 
            $message_content = $query['message_content']; 
            $date_sent = $query['date_sent']; 
            $viewed = $query['viewed']; 
            if($viewed == '0'){ 
            echo "<td><boldMail>$message_id</boldMail></td>"; 
            echo "<td><boldMail>$from</boldMail></td>"; 
            echo "<td><boldMailSubject><a href='mail.php?mail=$message_id'>$subject</a></boldMail></td>"; 
            echo "<td><boldMail><div>$message_content</div></boldMail></td>"; 
            echo "<td><boldMail>$date_sent</boldMail></td>"; 
            } 
            else{ 
            echo "<td>$message_id</td>"; 
            echo "<td>$from</td>"; 
            echo "<td><a href='mail.php?mail=$message_id'>$subject</a></td>"; 
            echo "<td><div>$message_content</div></td>"; 
            echo "<td>$date_sent</td>"; 
            } 


            echo '</tr>'; 
            echo '</div>'; 
          } 
         } 
         ?> 
       </table> 

</div> 

这里的代码我要替换点击消息中的一个

<?php 
     $mail_id = ""; 
     $mail_id = $_GET['mail']; 
     if($mail_id = ""){ 
      $string = get_include_contents('mailContent.php'); 
      echo "$string"; 
     } 
     else{ 

      $mail_id = ""; 
      $mail_id = $_GET['mail']; 

      $sql_mail = mysql_query("SELECT * FROM user_message WHERE message='$mail_id'"); 
      $mail_array = mysql_fetch_assoc($sql_mail); 

      $message_id = $mail_array['message']; 
      $from = $mail_array['from']; 
      $subject = $mail_array['subject']; 
      $message_content = $mail_array['message_content']; 
      $date_sent = $mail_array['date_sent']; 

      echo "$message_id"; 
      echo "$from"; 
      echo "$subject"; 
      echo "$message_content"; 
      echo "$date_sent"; 

     } 
     ?> 

感谢您的想法上面的代码的代码,即使你可以告诉我,如果我需要动作或JavaScript等......我将不胜感激。

+2

为什么你将变量设置为空字符串,然后立即覆盖它们? – ThiefMaster

+1

@ThiefMaster:OP是为写入的行支付的;-) – zerkms

+0

不知道我总是这样做,这有什么关系吗? –

回答

0

你想要的东西不能单独由PHP来实现:你想使用AJAX将消息加载到已存在的网页部分。

这样做是使用jQuerys load()方法

但要注意的一个简单的方法:将这种行为到您的网页也可以打破的东西。 例如:如果您替换当前用AJAX请求显示消息的机制,您是否仍然能够链接到系统 中的单个消息?

这是对此的一个german language article。 (对不起,刚才找不到英文版)

另外:你的PHP代码对于SQL注入是非常重要的。 Learn about prepared statements and use mysqli以避免此问题。

+0

要小心什么? O.o –

+0

抱歉,当我还没有完成答案时错误地发布。现在我完成了 – bjelli

+0

完全不用担心=)(我会在几分钟内删除我上面的​​(现在是冗余的)评论。) –