我有一个包含两个选择字段的表单,一个表示区域,另一个表示城市/村庄/等的名称。我有一个包含所有这些条目的数据库,格式如下:
id (int 11, ai)
region (varchar 50)
city(varchar 50)
我在这里找到了一个脚本,这样你就可以选择不同的选项,但它是用JS制作的,我不知道如何根据我的需要调整它。我需要一个数据库,因为我有13.000多个条目,并且在代码中手动输入它们并不是一个好主意。这是我读过的主题的链接,它的解决方案也在其中一条评论中。
how to change a selections options based on another select option selected?。
如果我需要在降级前编辑我的帖子,请告诉我。提前谢谢!
答案 0 :(得分:1)
只需使用ajax,当一个选择更改从服务器获取数据以提供其他选择时。
<select class="select_one">
<?php /* render first select ?>
</select>
<select class="select_two"></select>
<script>
$(function() {
$('.select_one').change(function() {
var select = $('.select_two').empty();
$.get('script.php', {region: $(this).val()}, function(result) {
$.each(result, function(i, item) {
$('<option value="' + item.value + '">' + item.name + '</option>').
appendTo(select);
});
});
});
});
</script>
并且您script.php
应该从db:
if (isset($_GET['region'])) {
$sql = new mysqli('localhost','username','password','database');
$region = mysqli_real_escape_string($sql,$_GET['region']);
$query = "SELECT * FROM cities WHERE region = $region";
$ret = $sql->query($query);
$result = array();
while ($row = $ret->fetch_assoc()) {
$result[] = array(
'value' => $row['id'],
'name' => $row['city']
);
}
echo json_encode($result);
}