2014-01-29 2 views
0

В основном я написал следующее, но мне интересно, какой лучший способ получить $ message_id = для $ row ['id'], который вы нажимаете, чтобы просмотреть сообщение «Входящие». Если я просто статически установил $ message_id =, чтобы сказать 39, и щелкните по строке, в которой $ row ['id'] равен 39, он откроет сообщение.Обновление переменной по клику

В основном, это то, что я делаю, это список входящих сообщений, которые у меня есть, и привязывайте теги к ним своим идентификатором строки, который будет использоваться в заголовке, чтобы показать полное содержимое этого сообщения.

<p> 
    <?php 
    $message_id = "39"; 

    if (isset($_GET[$message_id]) && empty($_GET[$message_id])) { 
     $username = $user_data['username']; 

     $get_message = mysql_query("SELECT * FROM `users_inbox` WHERE `id` = '$message_id' AND `send_to` = '$username'"); 
     $get_message_result = mysql_fetch_array($get_message); 

     echo '<h1><u>' . $get_message_result['subject'] . '</u></h1>'; 
     echo $get_message_result['sent_from'] . '<br />'; 
     echo $get_message_result['body'] . '<br />'; 
     echo '<a href="inbox.php">Back</a>'; 
    } 

    $username = $user_data['username']; 
    $result = mysql_query("SELECT * FROM `users_inbox` WHERE `send_to` = '$username'"); 
    ?> 

    <table border="1"> 
     <tr> 
      <td>From</td> 
      <td>Subject</td> 
      <td>Date</td> 
     </tr> 
      <?php 
      while($row = mysql_fetch_array($result)) 
      { 
       echo 
       '<tr>' . 
       '<td><a href="#">' . $row['sent_from'] . '</a></td>' . 
       '<td><a href="?' . $row['id'] . '">' . $row['subject'] . '</a></td>' . 
       '<td>' . $row['post_date'] . '</td>' . 
       '</tr>'; 
      } 
      ?> 
    </table> 
</p> 

Каждый знает, если это вообще возможно, так как я знаю, что код читается сверху вниз, и, насколько я знаю, вы не можете вернуться вверх на всех.

+1

Я действительно не понимаю ваш вопрос, но если судить название вашего вопроса 'Обновление переменной на click' да, это возможно с помощью JavaScript – FreshPro

+0

Вы можете сделать это с помощью Ajax. –

+0

Судя по вашему: обновите переменную в «процедурном» коде выше ... просто взгляните на ссылку: http://www.php.net/manual/en/language.references.php. – loveNoHate

ответ

0

Я предполагаю, что $user_data['username'] установлен или доступен, если да, то вы можете передать имя переменной по вашему выбору, которое указывает идентификатор сообщения вместо отправки только идентификатора (например: я устанавливаю его как msg_id), теперь вы может получить доступ к идентификатор сообщения через $_GET['msg_id']

<p> 
<?php 
$username = $user_data['username']; 
if (isset($_GET['msg_id'])) {  

    $get_message = mysql_query("SELECT * FROM `users_inbox` WHERE `id` = '$message_id' AND `send_to` = '$username'"); 
    $get_message_result = mysql_fetch_array($get_message); 

    echo '<h1><u>' . $get_message_result['subject'] . '</u></h1>'; 
    echo $get_message_result['sent_from'] . '<br />'; 
    echo $get_message_result['body'] . '<br />'; 
    echo '<a href="inbox.php">Back</a>'; 
}else{ 
    $result = mysql_query("SELECT * FROM `users_inbox` WHERE `send_to` = '$username'"); 

?> 


<table border="1"> 
     <tr> 
      <td>From</td> 
      <td>Subject</td> 
      <td>Date</td> 
     </tr> 
      <?php 
      while($row = mysql_fetch_array($result)) 
      { 
       echo 
       '<tr>' . 
       '<td><a href="#">' . $row['sent_from'] . '</a></td>' . 
       '<td><a href="inbox.php?msg_id=' . $row['id'] . '">' . $row['subject'] . '</a></td>' . 
       '<td>' . $row['post_date'] . '</td>' . 
       '</tr>'; 
      } 
      ?> 
    </table> 
</p> 
Смежные вопросы