2014-05-04 37 views
0
  • 列表項

我一直在這幾天路過無線電選擇數組變量和我似乎無法得到它。我正在創建一個互聯網航空公司數據庫,不幸的是我對PHP/HTML不是很熟悉,但我正在學習。通過會話中使用PHP/HTML

現在,當我試圖在單選按鈕被選中後在下一頁上調用我的會話時,我得到索引錯誤,我似乎無法找出它們。 SQL拉的工作正常,所有的數據顯示

對不起,如果造型不是最好的。我正在刪除和添加這麼多我失去了我的造型,並需要修復它。

下面是選擇之一,我路過

Session_start(); 

<form method="post" action="quantity.php"> 
              <?php 
     for ($j=0; $j<$num_rows; $j++) 
     { 

      echo "<table border='6'> 
      <tr> 
      <th>Select Flight</th> 
      <th>Flight ID</th> 
      <th>Flight Number</th> 
      <th>Departure Date</th> 
      <th>Flight Time</th> 
      <th>Destination</th> 
      <th>Origin</th> 
      <th>Flight Class</th> 
      <th>Flight Cost</th> 
      </tr>"; 

      $row2 = mysqli_fetch_assoc($return); 

      echo "<td>". "<input type='radio' name= 'Returns'   
      value=".$row2['fid'].")>". 
      "</td>". 
      "<td>". $row2['fid']. "</td>". 
      "<td>". $row2['fnumber']. "</td>". 
      "<td>". $row2['fdate']. "</td>". 
      "<td>". $row2['ftime']."</td>". 
      "<td>". $rowO['0']. ','. $rowO['1']. "</td>". 
      "<td>". $rowD['0']. ','. $rowD['1']. "</td>". 
      "<td>". $row2['class']. "</td>". 
      "<td>". '$'.$row2['price']."</td>"; 

      print "<br>"; 

      //$_SESSION['Return']=$_POST['Returns']; 
     } 
      if (isset($_POST['Returns'])) 
      { 
       $_SESSION['Returns']=$_POST[$row2('fid')]; 
      } 
?> 
<input type="submit" name="submit" value="Reserve" /> 
    </form> 

在我的下一個網頁的表格和單選按鈕,quantity.php,我調用存儲在會話變量:

session_start(); 

echo $_SESSION['Returns']; 

我真的需要傳遞的是'fid'值,因爲稍後我可以使用它來從數據庫中提取其他所有內容。

每當我試圖通過我有時能得到陣列(0)作爲答案...

我也曾嘗試宣告FID作爲一個變量,然後單選按鈕的名稱設置爲變量但無論檢查什麼,它總會傳遞最後一行。它不會正確循環。

任何幫助,非常感謝。我已經在這裏搜索和夢想代碼以及朋友PHP書的答案。不幸的是,我找不到能幫助我的解決方案,或者我沒有正確實施它。

謝謝。

+0

的語法是'在session_start();',而不是'在session_start();'添加錯誤文件(S) '的error_reporting(E_ALL)的頂部報告; ini_set('display_errors',1);' –

+0

是的,對不起,我沒有它在我的文件資本。我輸入的是複製粘貼而不是複製粘貼。我將添加錯誤報告。謝謝。 – Cavell219

回答

0

您處理帖子的代碼永遠不會被調用。 如果表單被提交,瀏覽器將切換到「quantity.php」,並且不會調用包含您的代碼的文件。

在大多數情況下,表單動作停留在form.php。 你有處理帖子,驗證輸入,如果一切正常,你將瀏覽器重定向到下一頁。

編輯: 我剛看到這個代碼

if (isset($_POST['Returns'])) 
      { 
       $_SESSION['Returns']=$_POST[$row2('fid')]; 
      } 

是你的循環之外。在這種情況下,$ row2不包含有效值。這是一個變量$_SESSION['Returns'],也許你需要在這裏放置一個數組$_SESSION['Returns'][$row2('fid')]。把它轉移到那個循環中。

+0

我只包含部分代碼,因爲完整的代碼是數百行。單選按鈕調用全部放在一個更大的循環中,POST返回循環內部以及表單外部。應該叫它,不是嗎?如果我錯了,請糾正我。 – Cavell219

+0

對我來說,我真的需要改善源代碼結構以獲得乾淨且便於維護的代碼。首先,你應該從html(顯示)分離php代碼(邏輯)。這是通過使用像smarty(http://smarty.net)或PHP的模板引擎正常完成的。 –

0
echo "<td>". "<input type='radio' name= 'Returns[]'   
     value=".$row2['fid'].")>". 

echo "<td>". "<input type='radio' name= 'Returns[".$j."]'   
     value=".$row2['fid'].")>".