PHP在HTML下拉列表中提取所选项目,该下拉列表从数组中填充以传递到数据库


PHP pulling the selected item in an HTML dropdown that is populated from an array to pass in to the database

好的,首先,我为这个复杂而冗长的标题道歉,但我对这一切都很陌生,我不太确定如何解释,甚至不知道如何开始。。。所以我就这么做了!

我现在正在做的是从MySQL数据库中填充一个HTML下拉列表,然后我想选择用户从下拉列表中选择的任何选项,并以某种方式将数据输入到不同的表中。

我用来从表中获取数据的代码是:

<td>Model of Bike</td>
<td><select type ="text" name="bikeBrand">
<?php 
    $sql = mysql_query("SELECT bikeDescr, bikeID FROM Bikes");
    while ($row = mysql_fetch_array($sql))
    {
        echo "<option value='bikeDescr'>" . $row['bikeDescr'] . "</option>";
    }
?>

现在,一旦用户选择了想要的自行车,假设它是一辆Trek,我希望能够获得这些信息,并将其放入我的Insert into()Values()中,这样我就可以在每次创建新票证时跟踪他们选择了哪辆自行车。

希望我没有混淆或使事情变得更糟,但如果能帮助我做什么,或者去哪里找,我将不胜感激。

谢谢你抽出时间。

我建议你做一些改进,它们是:

1) select标签没有type属性,因此正确的使用方法是:

<select name="bikeBrand">

2) 当你在数据库中获得bikeDescr和bikeID字段时,我建议你使用bikeID作为每个选项的值,并使用bikeDestr来显示选项的名称。例如:

<td>Model of Bike</td>
<td><select name="bikeBrand">
<?php 
    $sql = mysql_query("SELECT bikeDescr, bikeID FROM Bikes");
    while ($row = mysql_fetch_array($sql))
    {
        echo "<option value='" . $row['bikeID'] . "'>" . $row['bikeDescr'] . "</option>";
    }
?>

因此,您可以在下一个文件中检索bikeBrand值,并将其插入数据库中。

您必须更改语句:

echo "<option value='bikeDescr'>" . $row['bikeDescr'] . "</option>";

到此:

echo "<option value='" . htmlentities($row['bikeDescr']) . '>" . $row['bikeDescr'] . "</option>";

至于INSERT查询,你是想在同一页上调用它,还是在点击按钮或提交表单后调用它?

要获得您要执行的值表单上的操作作为另一个php文件,因此

<form action="submit.php" method="POST">
<td><select name="bikeBrand">
<?php 
    $sql = mysql_query("SELECT bikeDescr, bikeID FROM Bikes");
    while ($row = mysql_fetch_array($sql))
    {
        echo "<option value='". $row['bikeDescr'] ."'>" . $row['bikeDescr'] . "</option>";
    }
?>
</form>

submit.php看起来像

$value = $_POST['bikeBrand']
if(isset($value)){
// Database info goes here//
$sql = mysql_query("INSERT INTO table VALUES('$value')");
}