带有MySQL的PHP​​下拉菜单

时间:2011-10-16 20:06:57

标签: php mysql

我想将数据库中的值插入到php中的下拉菜单中。这就是我要做的事情:我有一个编辑表单页面,它从数据库中提取信息并填充自己。但是,下拉菜单是硬编码的,我希望数据库中的值是加载页面时选择的值,这样用户可以保留该值或下拉菜单并选择其他内容。

有没有办法做到这一点?我不知道我是否有任何意义:)

<html>
<head>
</head>
<body>
<select>
    <option>Select employ</option>
    <?php
    mysql_connect('localhost','user','pass');
    mysql_select_db('employ');
    $query="select id, name from employ order by name asc";
    $result=mysql_query($query);
    while(list($id, $name)=mysql_fetch_row($result)) {
        echo "<option value=\"".$id."\">".$name."</option>";
    }
    ?>
</select>

</body>
</html> 

该代码用于阅读和动态创建下拉菜单,但这不是我正在寻找的。相反,在页面加载之前已经在客户端创建了下拉列表 - 所以我只想在下拉菜单中选择从数据库返回的'name',就像在表单中显示其他值一样。

任何帮助都将不胜感激。

5 个答案:

答案 0 :(得分:2)

我会使用这样的代码:

<?php
$host="localhost";
$username="user";
$password="password";
$db_name="employ";
$tbl_name="employ";


mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name ORDER BY name ASC";
$result=mysql_query($sql);
if ($result === false) { echo "An error occurred."; }

?>

<html>
<head>
<title>Your title here</title>
</head>
<body>
<select name="usrname" id="usrname">
<option>Select employ</option>
<?php
while($rows=mysql_fetch_array($result)){
?>
<option value="<? echo $rows['id']; ?>"><? echo $rows['name']; ?></option>
<?php
}
mysql_close();
?>
</select>
</body>
</html>

它将所选项目的值设置为您的ID,并按照您的要求显示名称:-) 希望它有所帮助

答案 1 :(得分:1)

我不确定我在这里有正确的想法,但我会得到一个破解 我假设您希望当前选定的员工成为所选员工? 我不知道你打算如何选择跟踪哪个用户,但在这里我假设你在变量$selected中有它。

while(list($id, $name)=mysql_fetch_row($result)) {
    if($selected==$name) {
    echo "<option value=\"".$id."\" selected=\"selected\">".$name."</option>";
    } else {
        echo "<option value=\"".$id."\">".$name."</option>";
    }
}

希望我有正确的想法,这有助于:)

答案 2 :(得分:1)

Mutch清洁剂示例:

while(list($id, $name)=mysql_fetch_row($result)) {
      echo '<option value='.$id.'" '.($selected==$name? 'selected="selected"':'').'>'.$name.'</option>';
}

答案 3 :(得分:0)

如果我理解这一点,你想“重新填写表格”。要做到这一点,试试这个:

$currentValue = isset($_REQUEST['selectName']) ? $_REQUEST['selectName'] : null;
while(list($id, $name)=mysql_fetch_row($result)) {
    echo "<option value=\"{$id}\";
    if ($id == $currentValue) echo ' selected="selected"';
    echo ">".$name."</option>";
}

基本上,如果可以从帖子数据中获得当前值,则会获得当前值,然后选中所选元素(如果它在那里)。

答案 4 :(得分:0)

谢谢大家,我终于在这个网站的某个地方找到了答案。这是对别人问题的回答,也适用于我。