使用 php 填充下拉字段

Populating a dropdown field using php

以下代码未填充列表。我正在尝试从数据库中填充下拉列表,但下面的查询不会填充下拉列表。

<form class="form-horizontal" role="form" method="post">
    <div class="form-group">
        <label for="inputLocation" class="col-sm-2 control-label">Location</label>
        <div class="col-sm-4">
            <select class="form-control" id="inputLocation" name="inputLocation">
<?php

$queryData = mysql_query("SELECT DISTINCT cat_name as cat_name FROM 'categories' ORDER BY `cat_name`");
$result = mysql_fetch_array(mysql_query($queryData));   //$result now has database tables
?>
<select name='cat_name'>
<?php
while($row = mysql_fetch_array($result))
{
    ?>
        <option values=<?php echo($row['cat_name']); ?><?php echo($row['cat_name']); ?></option>
    <?php
}
?>  </select>

        </div>
    </div>
</form>

所以你似乎在调用 mysql_query 并获取数组两次...

$result = mysql_fetch_array(mysql_query($queryData);

应该改为

$result = mysql_fetch_array($queryData);

再往下,变化

while($row = mysql_fetch_array($result))

到...

foreach($result as $row)

你总能做到

print_r($result);

确保您从查询中获取数据。

您还有两个 select 标签,其中一个未关闭。删除这个顶部

            <select class="form-control" id="inputLocation" name="inputLocation">

其他几点需要注意:

  • MySQL 扩展已弃用,您应该考虑将此查询转换为 MySQLi 或 PDO

  • 回显语句不需要括号,只需使用

    echo $变量;

完整的编辑代码在这里

http://ideone.com/GASwcB