在PHP中的变量中存储选定的下拉列表值

时间:2014-02-12 21:06:09

标签: php html drop-down-menu

我访问了一个MySql数据库,从相关表中检索了值并使用以下命令将它们放在下拉列表中:

$material_query=          "SELECT material FROM materials";
$material_query_run =     mysql_query($material_query);
echo "<select>";
while   ($material_query_array=   mysql_fetch_array($material_query_run) ){
        echo "<option value='' >".$material_query_array['material']."</option>";                        
}echo "</select>";

我现在如何将变量中的下拉列表中的选定值存储起来?我认为我需要使用POST,但我无法弄清楚如何。

3 个答案:

答案 0 :(得分:1)

因此,select元素需要位于表单中,然后您可以提交该表单,然后可以处理提交的数据(通过post或get)。

您的选择框需要具有名称属性才能识别。您还需要在选项元素的value属性中包含一个值,因为这是发送的数据。

例如,在您的网页上(例如page.php),您可以将当前代码放在html表单标记中:

// The Form
<form action="page.php" method="post">
    <?php
    $material_query = "SELECT material FROM materials";
    $material_query_run = mysql_query( $material_query );
    echo "<select name='mySelect'>";
    while   ( $material_query_array = mysql_fetch_array( $material_query_run ) ) {
        echo "<option value='".$material_query_array['material']."' >".$material_query_array['material']."</option>";                        
    }
    echo "</select>";
    ?>
    <input type="submit" name="submit"/>
</form>

//Process the form
//check if form is submitted
if ( isset( $_POST['submit'] ) ) {
    //is submitted
    $variable = $_POST['mySelect'];
    //DO STUFF WITH DATA
}

所以我在这里完成了以下工作:

  • 添加了表单标记(参见:http://www.w3schools.com/php/php_forms.asp
  • 将名称属性添加到选择标记
  • 添加了select显示给选项标签
  • 的value属性的相同值
  • 在提交表单时添加了处理表单的代码(请再次参阅上面的链接)

答案 1 :(得分:0)

您需要以下内容:

<form action="post.php" method="post" name="select_form">
    <?php
       $material_query="SELECT material FROM materials";
       $material_query_run =mysql_query($material_query);
       echo "<select name=\"selectbox\">";
       while   ($material_query_array=   mysql_fetch_array($material_query_run) ){
         echo "<option value='".$material_query_array['material']."'>".$material_query_array['material']."</option>";                        
       }
       echo "</select>";
    ?>
    <input type="submit" value="Submit" name="submit">
</form>

然后在post.php

<?php
     if($_POST){
        $select=$_POST['selectbox'];
     }
?>

在旁注上使用PDO(http://www.php.net/manual/en/book.pdo.php)或MySQLI(http://uk3.php.net/manual/en/book.mysqli.php),因为MySql接口已过时。

答案 2 :(得分:0)

当用户点击提交按钮时,需要使用GET或POST将数据发送到PHP处理器。在处理器中,您将像任何其他表单元素一样访问SELECT字段值。

<form action="processor.php" method="POST">
// FORM ELEMENTS HERE
<input type="submit" value="Go!">
</form>

在您的处理器中:

<?php
$selectbox = $_POST['selectbox'];

现在,您可以在脚本中清理并使用变量$selectbox,或将其传递给您的数据库。