【发布时间】:2017-09-21 17:19:15
【问题描述】:
我被多个动态下拉菜单卡住了。所以这是我试图解决的问题。我将以下四个示例表存储在数据库中,并希望动态访问这些值。 Dropdown 2依赖于Dropdown 1,Dropdown 4依赖于2和3。
| ID | name | percent | | ID | name | languageValue | 100 | 75 | 501 |
| --- | ------ | ------- | | --- | ------- | ------------- | --- | --- | --- |
| 1 | 100% | 100 | | 1 | English | english | y | y | n |
| 3 | 75% | 75 | | 2 | German | german | y | n | n |
| 2 | 50% 1 | 501 | | 3 | French | french | n | n | y |
Table 1 (Dropdown 1) Table 2 (Dropdown 2)
| ID | CoreSubjectName | CoreSubjectValue | | ID | MinorSubjectName | MinorSubjectValue |
| --- | --------------- | ---------------- | | --- | ---------------- | ----------------- |
| 1 | Maths | maths | | 1 | English | english |
| 2 | Politics | politics | | 2 | Politics | politics |
| 3 | Chemics | chemics | | 3 | Chemics | chemics |
Table 3 (Dropdown 3) Table 4 (Dropdown 4)
我检索第一个下拉列表的值如下。 (我省略了结束标签)。
<select name="percent" id ="percent" onchange="getPercent(this.value);">
<option value="">Choose Percent</option>
<?php
$PercentPost = $_POST["percent"];
$PercentQuery = "SELECT percent, name FROM percentTable";
$results=mysqli_query($conn, $anteilQuery);
//loop
while ($row = mysqli_fetch_array($results)){
echo '<option value="'.$row[percent].'">'.$row[name].'</option>';
}
?>
<select name="language" id="language">
<option value=""></option>
</select>
以及用于填充第二个 Dropdown 的 js-ajax:
function getPercent(val){
//ajax function
$.ajax({
type: "POST",
url: "form.php",
data: "percent="+val,
success: function(data){
$("#language").html(data);
}
});
}
form.php 包含这个 sn-p 到目前为止:
$PercentPost = $_POST["percent"];
if (!empty($_POST["percent"])) {
$query="SELECT name, languageValue FROM table2 WHERE `$PercentPost`='y'";
$results = mysqli_query($conn, $query);
while ($row = mysqli_fetch_array($results)){
echo '<option value="'.$row[languageValue].'">'.$row[name].'</option>';
}
}
这很好用,但现在我不知道如何动态填充下拉列表 4。在下拉菜单 4 中,选择的值 2 和 3 不应该是可选的。我知道它必须用js的ajax来完成,但我不知道怎么做。
有人可以帮帮我吗? 非常感谢!
【问题讨论】:
标签: php jquery html ajax drop-down-menu