在php中制作动态下拉菜单

时间:2014-01-10 03:29:27

标签: php mysql forms validation

我在PHP表单上有一个动态下拉菜单,它正常工作,它检索/输入正确的id,如果没有收集选项,则不会处理表单。

但是,我不知道如何让它变得粘稠。我可以在没有问题的情况下进行静态下拉,但很明显我错过了什么,有人可以帮忙吗?

下面是下拉菜单:

echo '<div align="left">
<select name="dealership_id">
<option value="NULL">Choose a Dealer:</option>'; 
$query = 'SELECT * FROM dealership ORDER BY users_dealer_name ASC';
$result = mysql_query ($query);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
echo "<option value=\"$row[0] \" <?php if (isset($_POST['dealership_id']) && $_POST['dealership_id'] == '$row[0]') {echo 'selected=\"selected\"';} ?> >$row[3]</option>";
}
// Complete the dropdown
echo '</select> 
</div>
';

以下是验证码

if (isset($_POST['dealership_id'])) {
$dealer_id = (int) $_POST['dealership_id'];
} else {
$dealer_id = 0;
}
if ($dealer_id > 0) {
$query = "SELECT dealership_id FROM dealership WHERE dealership_id=$dealer_id";
$result = mysql_query ($query); }
else {
echo '<p><font color="red">Please select your Dealership</font></p>'; 
}

顺便说一句,第0行是主键,第3行是名称。

1 个答案:

答案 0 :(得分:1)

我认为以下$row[0]周围不应该有单引号:

$_POST['dealership_id'] == '$row[0]'

通过使用单引号,您实际上是在比较字符串$ row [0]而不是变量值

这是您的代码,其中包含一些至少是有效语法的更改;我没有测试它是否有效,但它应该。你可以在php中研究字符串连接,这里有一些有用的信息:http://www.php.net/manual/en/language.operators.string.php

echo '<div align="left">
<select name="dealership_id">
<option value="NULL">Choose a Dealer:</option>'; 

$query = 'SELECT * FROM dealership ORDER BY users_dealer_name ASC';
$result = mysql_query ($query);

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    echo "<option value=\"$row[0]\"";
    if (isset($_POST['dealership_id']) && $_POST['dealership_id'] == $row[0]){
        echo ' selected=\"selected\"';
    }
    echo ">$row[3]</option>";
}
// Complete the dropdown
echo '</select> 
</div>
';