【发布时间】:2016-02-04 22:06:29
【问题描述】:
我有一个下拉列表,它使用 mysqli_query() 从查询中获取信息 现在,一旦从第一个下拉列表中选择一个选项,我希望第二个下拉列表中填充来自差异查询的数据。
这是我的代码
HTML:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.17/jquery-ui.min.js"></script>
<script>
$(document).ready(function() {
$('.country').on('change', function() {
// Code to add country information in url
location.href = location.href.split('?')[0]
+ ['?country', $(this).val()].join('=');
});
});
</script>
PHP 第一下拉菜单:
<?php
$countries = mysqli_query($mysqli,"select source from nhws.masterkey group by source;");
echo "<select name='country' style=width:200px>";
echo "<option size =30 ></option>";
while($row = mysqli_fetch_array($countries)){
echo "<option value='".$row['source']."'>".$row['source']."</option>";
}
echo "</select>";
?>
PHP 第二个下拉菜单:
<?php
if (isset($_GET['country'])) {
$country = $_GET['country'];
echo $country;
$variables = mysqli_query($mysqli,"select variable from nhws.num_all_{$country} group by variable;");
echo "<select name='variable' style=width:200px>";
echo "<option size =30 ></option>";
while($row = mysqli_fetch_array($variables)) {
echo "<option value='".$row['variable']."'>".$row['variable']."</option>";
}
echo "</select>";
}
?>
现在,一旦从第一个下拉列表中选择了一个选项,第二个下拉列表中就不会发生任何事情。
谢谢!
【问题讨论】:
-
如果信息在服务器上并且没有立即传输到客户端,那么 ajax 是按需获取它的方式。如果您可以在初始页面加载时带来“可选”数据,那么您可以将其存储在隐藏的 div 中。就我个人而言,如果要为完整表单提取大量数据,我会选择前者并使用 ajax,只是按需引入它会加快页面加载速度。
-
根本没有 js/JQuery 吗?
-
我愿意接受使用任何方法的建议。忘记没有ajax。
标签: php jquery html ajax mysqli