2009-04-22 40 views
0

我有一個HTML表單驗證碼:

<select name="history12"> 
    <option value="Gov/Econ">Government &amp; Economics</option> 
    <option value="AP Gov/Econ">AP Government &amp; Economics</option> 
</select> 

...這代碼,以郵件形式:

$history12 = $_REQUEST['history12'] ; 

然而,當我嘗試回聲()$ history12,它總是返回空白。我無法弄清楚我做錯了什麼,因爲其他輸入工作正常(文本和電臺),但它似乎是在選擇上打擊。

+0

愚蠢的問題..是窗體標籤內的選擇標籤? – 2009-04-22 00:33:42

回答

4

有幾件事情要檢查

  • 有它周圍的表單元素
  • 是否表單元素使用POST
  • 你得到的print_r任何東西($ _ REQUEST);
  • 而作爲最後的手段,你在get_defined_vars()
+0

這是最大的問題,並修復它。謝謝! – dmanexe 2009-06-09 18:19:19

0

確保提交表單時選擇了某些內容。

默認情況下選擇了某些東西,所以它更可能是在放置選擇之前在某處清除了變量或關閉了您的表單。

您也可以在其他地方做一些格式不正確的html,對錶單做些簡單的事情。

+0

默認情況下會選擇某些東西,即使選擇了某些東西,也不會選擇骰子。 – dmanexe 2009-04-22 00:34:39

5

也許你可以嘗試輸出整個$ _REQUEST變量,以確保你所期望的一切都顯示出來。這可能至少表明是否設置了「history12」鍵。

print_r($_REQUEST); 
1

任何地方看到的值如果在一個乾淨的形式重複了你的代碼,它工作正常。你的問題必須在其他地方。

拿這段代碼,並開始添加其他組件,你可以測試一個給你一個問題。

<form action="test.php" method="post"> 
<select name="history12"> 
    <option value="Gov/Econ">Government &amp; Economics</option> 
    <option value="AP Gov/Econ">AP Government &amp; Economics</option> 
</select> 
<input name="send" type="submit" value="send" /> 
</form> 
<?php 

if(isset($_POST['history12'])) { 
    $history12 = $_REQUEST['history12'] ; 
    echo $history12; 
} 
?> 
0

當我運行此:

<form action='me.php' method='POST'> 
<select name="history12"> 
    <option value="Gov/Econ">Government &amp; Economics</option> 
    <option value="AP Gov/Econ">AP Government &amp; Economics</option> 
</select> 
<input type='submit' name='submit' value='lksjdflk' /> 
</form> 
<pre> 
<?php 

var_dump($_REQUEST); 

?> 
</pre> 

我得到這個:

 
array(2) { 
    ["history12"]=> 
    string(11) "AP Gov/Econ" 
    ["submit"]=> 
    string(8) "lksjdflk" 
} 

您需要張貼在表單的HTML,並且正在接收它的服務器端的代碼。

此外,請嘗試將「Gov/Econ」中的值更改爲「Gov Econ」,然後查看所得結果。你可能正在運行一些處理$ _REQUEST的代碼,並用正則表達式或某些東西來做一些簡單的事情,並剝奪你的價值。

1

你是否確保你不會在上面同名的同一個名稱之後意外地有另一個表單元素?

我已經有幾次了,例如「history12」作爲下拉菜單,但後面是一個隱藏的字段,後面跟着相同的名稱和值。這將覆蓋選擇。

相關問題