我在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是名称。

最佳答案

我认为以下$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>
';

关于php - 使动态下拉菜单粘在php中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21035710/

10-14 19:33
查看更多