下拉菜单选择以填充表单

时间:2016-12-15 13:42:51

标签: php html mysqli

大家好,

我正在尝试使用下拉菜单从MySQL填充表单以选择我想要显示的行 下拉列表显示我需要的项目。但我想要做的是选择下拉列表中的一个项目,这些项目将填写我需要编辑的项目。

这是我到目前为止的代码,包括表单。你们给予的任何帮助都会非常感激。

选择:

                                 <div class="panel panel-primary">
              <div class="panel-heading"> Manage Tours</div>
              <div class="panel-body">
                                <form role="form" method="post" action="">
              <label for="singleSelect">Choose Tour to Edit</label>
 <select class="form-control" name="tour_select">
     <?php 
     $result = mysqli_query($mysqli,"SELECT tour_name FROM tours order by id");

     while($row = mysqli_fetch_array($result)) 
         echo "<option value='" . $row['tour_name'] . "'>" . $row['tour_name'] . "</option>";
     ?>
 </select>

这很好用。

表单,也可以通过简单的选择查询正常工作:

 <div class="form-group">
                                        <label>Tour Name</label>
                                        <input class="form-control" name="tour_name" value="<?php echo $row['tour_name']; ?>" />
                                    </div>
                                    <div class="form-group">
                                        <label>Destination</label>
                                        <textarea class="form-control" name="tour_to" rows="4"><?php echo $row['tour_to']; ?></textarea>
                                    </div>
                                    <div class="form-group">
                                        <label>Collection</label>
                                        <textarea class="form-control" name="tour_from" rows="4"><?php echo $row['tour_from']; ?></textarea>
                                    </div>
                                    <div class="form-group">
                                        <label>Date</label>
                                        <input class="form-control" name="tour_date" value="<?php echo $row['tour_date']; ?>" />
                                    </div>
                                    <div class="form-group">
                                        <label>Pickup Time</label>
                                        <input class="form-control" name="tour_time" value="<?php echo $row['tour_time']; ?>" />
                                    </div>
                                    <div class="form-group">
                                        <label>Itinerary</label>
                                        <textarea class="tinymce" id="tinymce" name="tour_details" rows="12" ><?php echo $row['tour_details']; ?></textarea>
                                    </div>
                                    <button type="submit" name="Submit" class="btn btn-primary">Save Changes</button>
                                </form>

但是,当我从下拉列表中选择一个选项时,我需要使用该数据库表行中的数据填充表单。我希望我有意义。 我在Google上搜索了几天但没有找到任何内容。

我已使用删除按钮将表单从下拉列表更改为html表。

以下是包含表格的代码:

    <?php
                      if (isset($_GET['id'])) {
if (isset($_POST['Delete'])) {
   $remove = $mysqli->prepare("DELETE FROM `tours` WHERE `id` = $id");

   $id = $_POST['id'];
   $remove->bind_param('ssssss', $id);

   if(!$remove->execute() === true) {
       echo $mysqli->error;               
   }
}
                      }
                      $sql = "SELECT * FROM tours";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {


?>
                      <tbody>
                        <tr>
                          <td><?php echo $row['id']; ?></td>
                          <td><?php echo $row['tour_name']; ?></td>
                          <td><?php echo $row['tour_to']; ?></td>
                          <td><?php echo $row['tour_from']; ?></td>
                          <td><?php echo $row['tour_date']; ?></td>
                          <td><?php echo $row['tour_time']; ?></td>
                          <td><input type="submit" name="Delete" value="Delete" onclick="" /></td>
                        </tr>
                      </tbody>
                      <?php
}
?>
                    </table>
                                    </form>

我感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

假设您要使用$tour_id = 5预选特定的游览。然后,您可以将代码修改为: echo "<option value='" . $row['tour_name'] . "'" . ($row['id'] == $tour_id ? " selected" : "") . ">" . $row['tour_name'] . "</option>";

答案 1 :(得分:0)

我找到了解决方案,如果将来有人需要它。

 <?php
if (isset($_POST['Delete'])){
    $checkbox = $_POST['checkbox'];
    $count = count($checkbox);

    for($i=0;$i<$count;$i++){

        if(!empty($checkbox[$i])){ /* CHECK IF CHECKBOX IS CLICKED OR NOT */

        $id = mysqli_real_escape_string($mysqli,$checkbox[$i]); /* ESCAPE STRINGS */
        mysqli_query($mysqli,"DELETE FROM tours WHERE id = '$id'"); /* EXECUTE QUERY AND USE ' ' (apostrophe) IN YOUR VARIABLE */

        } /* END OF IF NOT EMPTY CHECKBOX */

    } /* END OF FOR LOOP */

} /* END OF ISSET DELETE */

                      $sql = "SELECT * FROM tours";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {

$id = mysqli_real_escape_string($mysqli, $row['id']);
?>
                      <tbody>
                        <tr>
                          <td><?php echo $row['id']; ?></td>
                          <td><?php echo $row['tour_name']; ?></td>
                          <td><?php echo $row['tour_to']; ?></td>
                          <td><?php echo $row['tour_from']; ?></td>
                          <td><?php echo $row['tour_date']; ?></td>
                          <td><?php echo $row['tour_time']; ?></td>
                          <?php echo "<td><input type='checkbox' name='checkbox[]' value='$id'></td>"; ?>
                         </tr>
                      </tbody>
                      <?php
}
?>

谢谢大家的帮助。真的很感激。