填充数据库中的下拉列表并设置默认值

时间:2018-06-07 09:30:49

标签: php html mysqli

现在我有一个工作解决方案,用于填充HTML <select> / <option> - 通过我的database: listoption PHP / MYSQLI 中的内容下拉列表。< / p>

数据库:

DATABASE NAME: 
# listoption

TABLES:
# ID INT(11) *Primary AI
# listoption_item VARCHAR(255)

这是其他代码(不是mysqli连接,但之后的所有内容......)

<?php

    $result = $mysqli->query("select * from listoption");

    echo "<select id='list' name='list'>";

      while ($row = $result->fetch_assoc()) {

        $listoption_item = $row['listoption_item'];

        echo '<option value="'.$listoption_item.'">'.$listoption_item.'</option>';

      }

    echo "</select>";

?>

但现在的问题是,我希望通过该查询填充其中一个选项为selected。并且应该通过URL中的参数来确定要选择的选项,例如:index.php?id=1。 所以现在我需要以某种方式在代码中添加IF / ELSE和$_GET['id'];,以使其识别数据库中的ID是否与填充的项目相同,然后将其设置为选中。

任何idéas?谢谢!

3 个答案:

答案 0 :(得分:1)

你可以这样做,如下所示:

&#13;
&#13;
<?php

    $result = $mysqli->query("select * from listoption");
    $id = ($_GET['id'])? $_GET['id'] : '';

    echo "<select id='list' name='list'>";

      while ($row = $result->fetch_assoc()) {

        $listoption_item = $row['listoption_item'];
        $sel = ($id == $row['id'])? 'selected="selected"':'';
		
        echo '<option value="'.$listoption_item.'" '.$sel.'>'.$listoption_item.'</option>';  // $sel will deside when to set `selected`
        
      }
    
    echo "</select>";
    
?>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以按如下方式重写代码:

<?php
    $id = $_GET['id'];
    $select = "";
    $result = $mysqli->query("select * from listoption");

    echo "<select id='list' name='list'>";

      while ($row = $result->fetch_assoc()) {
        $row_id = $row['ID'];
        if($row_id == $id){
           $select = "selected";
        }
        $listoption_item = $row['listoption_item'];

        echo '<option value="'.$listoption_item.'" selected="'.$select.'">'.$listoption_item.'</option>';

      }

    echo "</select>";

?>

答案 2 :(得分:0)

使用以下代码: -

<?php

$selectedId = isset($_GET['id'])?$_GET['id']:0;
$result = $mysqli->query("select * from listoption");

echo "<select id='list' name='list'>";

  while ($row = $result->fetch_assoc()) {

    $listoption_item = $row['listoption_item'];

    echo '<option value="'.$listoption_item.' .(($selectedId>0)?:" selected ":"").'">'.$listoption_item.'</option>';

  }

echo "</select>";

?>