如何从MySQL中提取PHP中的SELECTED选项?

时间:2010-03-18 23:13:50

标签: php mysql select option

在我的更新表单中,我希望字段调用已存储的值。这在文本字段中非常简单,但是对于我的下拉()我在使用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'始终是我数据库中的第一个用户,而不是被选中的用户当我的活动被添加时:( !!!

3 个答案:

答案 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)

您现在正在做的是:

  • 选择第一个结果行并将其打印为SELECTED硬编码的选项;
  • 循环通过其余结果行输出选项;你没有在任何地方检查当前选择的值,但你有一个空的if()没有任何目的;
  • 我看不到当前存储的名称所在的任何地方。

尝试此操作(假设$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>';
                }
            ?>