【问题标题】:How to auto selected save value from database in to select HTML tag如何从数据库中自动选择保存值以选择 HTML 标记
【发布时间】:2019-08-24 13:04:01
【问题描述】:

如何自动选择从数据库中获取的保存值以选择 HTML 标记。

我有一个房间列表,其中包含酒店名称、房间类型、设施、描述。我想编辑那条记录。当我点击编辑按钮时,它会获取 room_id 以相应地编辑行,所有其他值都成功地自动获取到文本框中,除了选择标签中的值。

这是我从数据库中获取值并回显到相应文本框的代码,选择框除外。我想在选择框中自动选择值。

$query = "SELECT * from room where room_id = '$id'";

$result = mysqli_query($connection, $query) or die ( mysqli_error());
 while($row=mysqli_fetch_assoc($result))
  { 
       $room_id=$row['room_id'];
        $room_type_id=$row['room_type_id'];
        $facilities = $row['facilities'];
        $long_description=$row['long_description'];
}
         ?>

                  <form action="Edit_Room_Script.php" method="post"  enctype="multipart/form-data">


                <label class="form-label">Hotel Name</label> 
<select class="form-control" name="name" id="name">
<?php
$sel_cus = "select hotel_name from hotels ";
$res_cus = mysqli_query($connection, $sel_cus);
while ($row = mysqli_fetch_array($res_cus)) {?>
<option value="<?php echo $row['hotel_id'];?>"><?php echo $row['hotel_name'];?></option><?php}?>
</select>

<label class="form-label">Room Type</label> 
<select class="form-control" name="room_type" id="room_type">
<?php
$sel_cus = "select Room_Type_Id,Room_Type_Name from room_type ";
$res_cus = mysqli_query($connection, $sel_cus);
while ($row = mysqli_fetch_array($res_cus)) {?>
<option value="<?php echo $row['Room_Type_Id'];?>">
<?php echo $row['Room_Type_Name'];?></option>
<?php
} 
?>
</select>
<label class="form-label">Facilities</label> 
<input class="form-control" type="text" id="facilities" value="<?php echo $facilities;?>" name="facilities" autocomplete="Off"  required >

<button class="btn btn-success btn-cons" type="submit" name="update" id="update"> Update Room</button>
</form>

我的 html 表中有一行如下所示

高级酒店名称房型设施操作

1 Serena Super ABC 编辑

当我单击编辑按钮时,我需要编辑从数据库中成功自动获取设施值并在文本框中设置但未设置酒店名称和房间类型的位置。在酒店名称和房间类型的选择标签中,它填充了除 serena 和 super 之外的所有酒店名称和房间类型我怎么能做到这一点请用一些代码指导。 谢谢

【问题讨论】:

    标签: php html mysqli


    【解决方案1】:

    一些修改:

    1) 获取$hotel_id

    2) 要显示选中的&lt;select&gt; 元素,您需要在&lt;option&gt; 标签中添加selected="selected" 属性。

    如果你有一个下拉 HTML:

    <select class="form-control" name="room_type" id="room_type">
    <option value="1">Villa</option>
    <option value="2">Terrace</option>
    <option value="3" selected="selected">Gallery</option>
    <option value="4">Delux</option>
    </select>
    

    下拉菜单将显示Gallery 已选中。

    在您的情况下,您可以通过以下方式显示它:

    <?php
    $sel_cus = "select Room_Type_Id,Room_Type_Name from room_type ";
    $res_cus = mysqli_query($connection, $sel_cus);
    while ($row = mysqli_fetch_array($res_cus)) {?>
    <option value="<?php echo $row['Room_Type_Id'];?>"
    <?php if ($room_type_id == $row['Room_Type_Id']) { echo 'selected="selected"';}?>>
    <?php echo $row['Room_Type_Name'];?></option>
    <?php
    } 
    ?>
    

    3) 另外,首先从数据库中获取数组,然后在 &lt;select&gt; 元素中循环它们,因为直接在 &lt;select&gt; 中编写获取代码是一种不好的做法,如果出现任何问题,它会暴露您的数据库字段名字。

    【讨论】:

    • 我实现了我想要的。成功地从数据库中自动选择值以选择标签。你能告诉我什么是好的做法吗?非常感谢
    • 好的做法是获取文件顶部数组中的所有数据库信息。并遍历数组以显示下拉数组。另外,避免多个数据库查询交互。
    • 先生,其实我对 PHP 不太熟悉,请您指导我通过示例。
    • 其实需要多多练习,上网搜索PHP的技巧和窍门。它不是一天的过程。祝你好运:)
    • 这就是我认为你在逃避我的原因 :) 无论如何谢谢
    猜你喜欢
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 2019-01-19
    • 2016-04-08
    • 1970-01-01
    • 2019-09-29
    相关资源
    最近更新 更多