2010-10-05 54 views
0

我在表單中使用此代碼創建一個下拉菜單。 (選項列表加載從我的sql數據庫中更正)。一旦用戶點擊提交,我應該能夠檢索用$ _POST ['field']選擇的值。如何使用PHP中的方法POST檢索選擇值?

<form action="page2.php" method="post" name="form" id="form"> 

<?php 
$query = sprintf("SELECT domaine FROM `domainema` WHERE userid='%s' ", $userid); 
$result=mysql_query($query); 
echo "<select name=domaine value=''>Domain </option>"; 

while($nt=mysql_fetch_array($result)){ 
echo "<option value=$nt[id]>$nt[domaine]</option>"; 
} 
echo "</select>"; 
?> 
... 

在第二頁上,我用這個代碼:

$domaine = strip_tags(substr($_POST['domaine'],0,32)); 
echo "You selected $domaine"; 

但我什麼也沒得到一個空值,我究竟做錯了什麼?

謝謝!

+0

基本調試優先:「 Zenet 2010-10-05 12:58:50

+0

更改爲:echo''; – CristiC 2010-10-05 13:11:17

1

此行可能不正確......

echo "<select name=domaine value=''>Domain </option>"; 

它應該是

echo "<select name=domaine value=''>"; 

你還應該注意的是,如果沒有的選項被選中,那麼你不會得到一個值背部。爲了確保您獲得價值回報,默認情況下,選擇其中一個(例如第一個),通過添加selected="selected"它...

我也建議引用值更清楚一點。 爲了完整起見...

<?php 
$query = sprintf("SELECT domaine FROM `domainema` WHERE userid='%s' ", $userid); 
$result=mysql_query($query); 

echo '<select name="domaine" value="">'; 

$isfirst = true; 
while ($nt=mysql_fetch_array($result)) { 
    echo '<option value="'.$nt[id].'"'; 
    if ($isfirst) 
     echo ' selected="selected"'; 
    echo '>'.$nt[domaine].'</option>'; 
    $isfirst = false; 
} 

echo '</select>'; 
?> 
+0

我用你建議的Rikh代碼提取,但我仍然在最後得到相同的空白輸出。這是我得到的HTML代碼: Zenet 2010-10-05 12:54:18

+0

你錯了。即使沒有「selected = selected」,如果您在HTML中有任何選項,它仍然會有一個值。 – methodin 2010-10-05 12:55:34

+0

默認情況下,除非您爲特定選項指定selected =「selected」,否則將選擇第一個選項。 – CristiC 2010-10-05 12:58:24