动态选择框

Dynamic Select Box

本文关键字:选择 动态      更新时间:2023-09-26

我正在学习Php和Mysql。

我有一个带有 2 张表的数据库(实践)。一个是类别,另一个是子类别。

在我的 html 表单中,有一个来自类别表的选择框数据列表。所以我需要,如果我选择这个列表框,它们将出现在与类别表相关的子类别表中的另一个选择框数据。例如:

类别表

Id     Cat_name
1      O level  
2      A level.  

子类别表:

id     Cat_id     Sub_name
1      1          O-level Math
2      1          O-level English
3      2          A-level Math
4      2          A-level English

提前谢谢。

如果您希望在不重新加载页面的情况下无缝高效地完成此操作,则需要查看 Jquery Ajax 函数。Ajax的工作方式是,当有人在第一个框中进行选择时,它会将该数据发送到一个php脚本,该脚本可以从第一个框中获取答案,运行mysql查询,然后将新的子类别返回到原始页面,而无需重新加载页面。

例:在您的测试中.php

//On selection change state, call the ajax
$("#elementid").change(function() {
 var selection = $(this).children("option:selected");
  $.ajax({
    url: 'caller.php',
    dataType: 'json',
    data: 'selected='+selection,
    success: function(data) {
      //Fill the second selection with the returned mysql data
    }
  });
}
<select id="elementid">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

在您的呼叫者中.php

$selection = $_POST["selected"];
//Create an array to hold all the subcategories, say the array is called $sub
echo json_encode(array(success => $sub));
exit;

请阅读 Jquery.ajax

您将需要 Ajax 来完成此操作,在第一个下拉列表中选择一个值后,您通过 ajaxnto 发送另一个 php 文件的请求,该文件将根据第一个选择为您提供生成的子类别。然后,Ajax 将在第二个下拉列表中插入此新数据。您还可以从 jquery 库中查看 post 函数,这将使整个过程更加容易。