0

我有一个要求位置的输入表单。位置存储在 mysql 数据库中并具有 id(列:id 和列:位置)。

我有一个从数据库中的这些记录生成的下拉菜单:

    <select name="location">

    <?php                         
            $query="SELECT location FROM locations";
                $result=mysql_query($query) or die;

            while ($row=mysql_fetch_array($result)) {

            $location=$row['location'];

            echo "<option>$location</option>";
    ?>

    </select>

这一切都有效。提交表格后,我显然会得到一个 POST[location] 例如“比利时”。

假设比利时是我的数据库中的位置并且 ID 为 5,我如何从下拉框中返回 ID 作为 POST 变量,而不是位置。当然,我希望下拉菜单显示位置,而不是 ID。

提前致谢!

4

4 回答 4

3

每个选项都可以取一个值并显示另一个字符串,因此value="my_value"请用于选择标签内的每个选项

<select name="location">
    <?php                         
        $query="SELECT id, location FROM locations";
        $result=mysql_query($query);

        while ($row=mysql_fetch_array($result)) {
            echo "<option value=\"" . $row['id'] . "\">" . $row['location'] . "</option>";
        }
    ?>
</select>

现在您POST['location']将包含所选位置的数据库 ID

于 2012-10-29T12:29:42.460 回答
1

如果您更改 SQl 查询以包含位置的 ID,您可以将该值分配给下拉选择的值。

<select name="location">
<?php   
$query="SELECT id, location FROM locations";
$result=mysql_query($query) or die;
while ($row=mysql_fetch_array($result)) {

    $location=$row['location'];
    $id = $row['id'];
    echo "<option value='".$row['id']."'>".$location."</option>";
?>
</select>
于 2012-10-29T12:30:22.827 回答
0
<select name="location">
<?php                         
// select columns you need, separate by , (comma)
$query = "SELECT `column1`, `column2` FROM `locations`;";
$result = mysql_query($query) or die;
while ($row = mysql_fetch_array($result)) {
    // selected columns become accessible in $row array
    // value attribute needs to be escaped here
    echo '<option value="', htmlentities($row['column1']),'">',
        htmlentities($row['column2']), '</option>'; // escape label too
    // <option> does not accept HTML in label so it should be escaped
} // done!
?>
</select>

^这个 (阅读评论以获得解释)

于 2012-10-29T12:31:02.850 回答
0
select ID from locations;

$ID=$row['ID'];

将 ID 替换为您的列的 ID 名称。

如果你说 select * from locations 你可以这样做:

$row['anyCOLUMNNAME']

您可以选择您喜欢的任何列并使用该特定行中的信息。

于 2012-10-29T12:28:59.737 回答