如何在PHP中使用方法POST检索选择值?

时间:2010-10-05 12:44:24

标签: php forms post

我在表单中使用此代码来创建下拉菜单。 (选项列表加载从我的SQL数据库更正)。一旦用户点击提交,我应该能够检索用$ _POST ['field']选择的值。

<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";

但我没有得到任何空白的价值,我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分: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>';
?>

答案 1 :(得分:1)

在您的查询中,您没有选择ID,只选择域。改变它是这样的:

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

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

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