从MySQL填充PHP中的两个选择标记并取消在第一个标记中选择的条目

时间:2017-02-21 05:12:22

标签: php mysql select

我是一名学习php应用程序的学生。我基本上使用以下代码填充两个从mysql填充的选择标记

我还有一个处理到达位置的选择标记。

这是一张图片:

x

我面临的问题是我不希望第一个选择标签中选择的条目显示在第二个选择标签中,因为它是两个位置之间的旅程。 我不知道从哪里开始,如果有人能指出我正确的方向,这将是一个很大的帮助。

<?php
// perform database query
$query = "SELECT id, municipality FROM airports";

$result = mysqli_query($connection, $query);

if(!$result){
  die("Database query failed.");
}
// only for syntax errors
// Select query for arrival
echo "<select name='arrival'>";
while($row = mysqli_fetch_assoc($result)){
    unset($id, $name);
    $id = $row['id'];
    $name = $row['municipality'];
    echo '<option value="'.$name.'">'.$name.'</option>';
}
echo "</select>";
// release returned data
mysqli_free_result($result);
?>

1 个答案:

答案 0 :(得分:0)

如果我是你,我会使用javascript/jquery'的ajax轻松玩这种情况。我的解决方案是,对于第一个select元素,您只需获取来自数据库的所有数据并将它们放在1st select元素中。然后这部分,ajax会帮助你。

流程是:

  1. 从php中获取所有数据并将数据填充到第一个选择元素中。使其值存储数据ID
  2. 在第一个选择框中注册onChange事件,收听事件并获取值(ID)。
  3. 再次在onChange内部事件中,执行POST Ajax request,将数据(ID)一起发送到服务器端代码。
  4. 执行数据库操作选择不包含发送ID的数据。例如:select *from tableName where id NOT IN(Id_that_we_sent)
  5. 发回数据(响应),并将数据填充到第二个选择元素
  6. 我敢打赌,您可以实施另一种解决方法。但这是您可以使用的方法。这是你的选择。 :)