2012-02-21 20 views
0

我只想問一個更好的主意。情景是這樣的: 1.在可點擊的表格行上顯示消息。如果消息已被讀取,則該行不能被點擊 2.一旦點擊,它將打開一個用於回覆消息的彈出窗口。當窗口關閉時,頁面應刷新。可點擊的表格行無法獲取數據到一個彈出窗口

問題是我只能得到最後一行數據。看來會話變量被覆蓋。

<?php 
    //Display Messages Starts Here 
    $msg = "SELECT * FROM messages WHERE sid=". $_SESSION['SESS_SERVICE_ID'] .""; 
    $resulta = mysql_query($msg)or die(mysql_error()); 
    while($row = mysql_fetch_array($resulta)) 
    { 
     if($row['status']=='deleted'){ 
      echo "<tr bgcolor=#AAAAAA>"; 
      echo "<td>" . date("Y-m-d",strtotime($row['stamp'])) . "</td>"; 
      echo "<td>" . $row['msisdn'] . "</td>"; 
      echo "<td width=100%>" . $row['data'] . "</td>"; 
      echo "</tr>"; 
     } 
     else{ 
      // id like to use this to a popup form for reply 
      echo "<tr onmouseover='ChangeColor(this, true);' 
         onmouseout='ChangeColor(this, false);' 
         onclick=\"DoNav();\">"; 
      echo "<td>" . date("Y-m-d",strtotime($row['stamp'])) . "</td>"; 
      echo "<td>" . $row['msisdn'] . "</td>"; 
      $_SESSION['SESS_MSG_ID'] = $row['id']; 
      $_SESSION['SESS_MSG_DATA'] = $row['data']; 
      echo "<td width=100%>" . $row['data'] . "</td>"; 
      $_SESSION['SESS_MSG_NUM'] = $row['msisdn']; 
      echo "</tr>"; 
     } 
    } 
    ?> 

回答

0

您正在設置一個$_SESSION變量,並且每次都會覆蓋此變量。

你最好存儲在一個陣列,如:

$_SESSION[$row['id']]['SESS_MSG_DATA'] = $row['data']; 

,然後更改的onClick到:

onclick=\"DoNav(".$row['id']."); 

當然在DoNav功能:

function DoNav(row_id){ 
    window.open("reply.php?id="+row_id, "myWindow", "status = 1, height = 300, width = 555, resizable = 0"); 
} 

而且然後在reply.php中,獲得$_GET['id'];的ID並從會話中獲取數據:

$_SESSION[$_GET['id']]['SESS_MSG_DATA']; 

除了SESS_MSG_DATA你可以儲存所有本陣:

$_SESSION[$row['id']][ANY VARIABLE HERE] 
+0

我做了什麼,你的建議和它不是現在overwritting,但彈出的窗口中仍然沒有獲得所需的數據。仍然有未定義的變量它 – N3R0 2012-02-21 11:11:46

+0

你如何讀取那裏的數據?你如何將變量傳遞給彈出窗口?函數DoNav()做了什麼 – 2012-02-21 11:14:47

+0

'function DoNav(row_id) { window.open(「reply.php」,「myWindow」,「status = 1,height = 300,width = 555,resizable = 0」) }' – N3R0 2012-02-21 11:32:35

相關問題