2013-05-27 47 views
0

我想訪問同一頁上的變量,但我不能..我的代碼如下,但出現錯誤未定義指數:汽車如何訪問同一頁上的變量是在PHP

<form name="form1" action="#" method="post"> 
<select onChange="openOffersDialog(this.value);" name="cars" id="cars"> 
    <option value="Volvo" id="Volvo">Volvo</option>   
    <option id="Saab" value="Saab" selected>Audi</option>     
</select> 
</form> 
<?php $car = $_GET['cars']; 
    switch ($car) { 
    case "Volvo": 
    echo "<table width='50%' border='0'> 
      <tr> 
      <td>Volvo1</td> 
      <td>Volvo2</td> 
      </tr>  
     </table>"; 
    break; 
    case "Saab": 
    echo "<table width='50%' border='0'> 
      <tr> 
      <td>Saab1</td> 
      <td>Saab2</td> 
      </tr>  
     </table>" ; 
    break; 
    default: 
    echo "Sorry,<br>"; 
    } ?> 
+0

您正在使用的,而不是在GET方法POST請閱讀下面的鏈接瞭解更多信息。還總是檢查一個變量是否存在,尤其是post/get:'$ car = isset($ _ GET ['cars'])? $ _GET ['cars']:'';' – HamZa

+0

爲什麼downvotes?問題微不足道,但合法。我知道這是星期一,但是振作起來。 –

+0

@JezenThomas當那些瑣碎的問題得到低估,但答案得到提升時,我爲社區感到難過...... – HamZa

回答

2

你有三個問題:

  1. 您的形式是method="post",但你想讀出的數據$_GET,更改到$_POST(或更改使用method="get"的形式,看到this answer幫忙確定你應該使用它)。
  2. 您正在嘗試從表單提交中讀取數據,而不管表單是否已經提交。在執行依賴於它的其他邏輯之前,測試該值是否與isset一同存在。
  3. 您沒有提交按鈕,所以表單無法提交。您可能希望PHP在選擇更改時運行,但除非您有一些JavaScript來觸發表單提交,否則情況並非如此。
+0

我試過得到併發布兩種方法,但它仍然不起作用 –

+0

@ShilpaDeshmukh - 複製/粘貼代碼後,將'$ _GET'改爲'$ POST'並添加一個提交按鈕,它適用於我。 – Quentin

+0

我按照你的建議進行了修改'

0

您在表格中有一個POST方法。將$_GET["cars"]替換爲$_POST["cars"]

$car = $_POST['cars']; 

或者,你需要在你的<form>標籤更改:

<form name="form1" action="#" method="get"> 

而且,你應該首先檢查表已公佈。所以你需要提前預測。

<?php if (count($_POST) && isset($_POST["cars"])) { ?> 

然後你需要繼續。