gpt4 book ai didi

php - 如何使用 jQuery、PHP 和 MySQL 动态填充相关的选择菜单?

转载 作者:行者123 更新时间:2023-11-30 23:03:29 26 4
gpt4 key购买 nike

我在这里搜索了很多关于这个主题的内容。但是我找不到解决问题的方法。如果你能帮助我,我将不胜感激,这是我正在进行的学校项目。

我有一个数据库,其中包含一个表(“Main_table”)和包含“sector”和“sub_sector”的列。我想要两个选择框,第一个将加载数据库中“扇区”列中的所有记录,第二个将根据第一个选择框的选择值从数据库中加载“sub_sector”列中的所有记录。 (例如:如果我在第一个选择框上选择“塑料”,则第二个选择框应使用 sub_sector 值更新,其中扇区值等于“塑料”)。

我已经设法从数据库中为第一个选择框加载选项值,但是当我单击任何选择时,它不会将任何选项加载到第二个选择框。您可以在下面找到代码。我没有在下面放置“sector_options.php”,因为它似乎工作得很好。

index.html 如下所示:

<script>
$(document).ready(function() {

$('#filter_sector')
.load('/php/sector_options.php'); //This part works fine - uploads options to the first select box

$('#filter_sector').change(function() {
$('#filter_subsector').load('/php/subsector_options.php?filter_sector=' + $("#filter_sector").val()
} //This part does not work - no options on the second select box
);
});

</script>

<body>
<div id="sectors"><p>Sector:</p>
<select id="filter_sector" name="select_sector" multiple="multiple" size="5"> </select>
</div>

<div id="subsectors"><p>Sub Sector:</p>
<select id="filter_subsector" name="select_subsector" multiple="multiple" size="5"> <option value="" data-filter-type="" selected="selected">
-- Make a choice --</option>
</select>
</div>

</body>
</html>

sector_options.php 如下所示:

<?php

$link = mysqli_connect("*******", "*******","******","********") or die (mysql_error());

$query = "SELECT sector FROM Main_table ";

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

while($row = mysqli_fetch_assoc($result)) {
$options .= "<option value=\"".$row['sector']."\">".$row['sector']."</option>\n ";
}

echo $options;

?>

subsector_options.php 如下所示:

<?php

$link = mysqli_connect("********", "*****,"*******", "********") or die (mysql_error());

$Sectors = $_REQUEST['filter_sector'];

$query = "SELECT sub_sector FROM Main_table WHERE sector='$Sectors'";

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

while($row = mysqli_fetch_assoc($result)) {$options .= "<option value=\"".$row['sub_sector']."\">".$row['sub_sector']."</option>\n ";
}

echo $options;

?>

最佳答案

为了完整起见,解决方案是:

  • 使用浏览器网络监视器检查 AJAX 操作的执行情况
  • 在浏览器标记中加载 AJAX 提取器脚本 - 在许多情况下,它们会在那里非常愉快地呈现,从而使它们更容易调试
  • 返回用于注入(inject)的 HTML 的 AJAX 脚本应该返回该 HTML,而不是完整的 HTML 文档。

关于php - 如何使用 jQuery、PHP 和 MySQL 动态填充相关的选择菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22895427/

26 4 0