在我的更新表单中,我希望字段调用已存储的值。这在文本字段中非常简单,但是对于我的下拉()我在使用PHP读取已存储的用户名时遇到问题。这是我的查询和代码:
$sql = "SELECT users.user_id, users.name FROM users";
$result = mysql_query($sql, $connection)
or die ("Couldn't perform query $sql <br />".mysql_error());
$row = mysql_fetch_array($result);?>
<label>Designated Person:</label> <select name="name" id="name">
<option value="<?php echo $row['user_id']?>" SELECTED><?php echo $row['name']?> - Current</option>
<?php
while($row = mysql_fetch_array($result))
{ ?> <option value="<?php echo $row['user_id']; if (isset($_POST['user_id']));?>"><?php echo $row['fullname']?></option>
<?php } ?>
结果显示所有用户(根据需要),让我选择一个用户然后成功执行更改...但是'SELECTED'始终是我数据库中的第一个用户,而不是被选中的用户当我的活动被添加时:( !!!
答案 0 :(得分:1)
嗯......我认为你的代码不完整。 Ex的最后一个选项得到了一个什么都不做的if语句......你不应该将select放在同一个select元素中的两个不同选项上。
如果没有其他人,则第一个选项始终默认选择,并且....对于xhtml尝试使用selected =“selected”而不是SELECTED
此外,您正在尝试回显$ row ['fullname'],但您的查询是获取列'name'
<?php
$sql = "SELECT users.user_id, users.name FROM users";
$result = mysql_query($sql, $connection) or die ("Couldn't perform query $sql <br/>".mysql_error());
$row = mysql_fetch_array($result);
?>
<label>Designated Person:</label>
<select name="name" id="name">
<option value="<?php echo $row['user_id']?>"><?php echo $row['name'] ?> - Current</option>
<?php
while($row = mysql_fetch_array($result)){ ?>
<option
value="<?php echo $row['user_id'] ?>"
<?php echo (isset($_POST['name']) && $_POST['name'] == $row['user_id']) ? ' selected="selected"' : '');?>
><?php echo $row['name']?></option>
<?php } ?>
答案 1 :(得分:1)
您现在正在做的是:
尝试此操作(假设$curname
是当前选择的名称):
$sql = "SELECT users.user_id, users.name FROM users";
$result = mysql_query($sql, $connection)
or die ("Couldn't perform query $sql <br />".mysql_error());
?>
<label for="name">Designated Person:</label>
<select name="name" id="name">
<?php
while($row = mysql_fetch_array($result))
{ ?>
<option value="<?php echo $row['user_id'] ?>" <?php if ($curname == $row['name']) echo ' SELECTED'; ?>><?php echo $row['fullname']?></option>
<?php } ?>
答案 2 :(得分:0)
<?php
$result = mysql_query("select (row) from (table)");
while($row = mysql_fetch_row($result))
{
echo '<option value='.$row[0].'>'.$row[1].'</option>';
}
?>