我有一个下拉列表,当我点击一个选项时,我希望另一个下拉列表从mysql重新生成其选项。第一个下拉列表的代码:
<div class="form-group">
<label class="col-sm-2 control-label" for="input-zone"><?php echo $_['region'];?></label>
<div class="col-sm-10">
<select name="region_id" id="region_id" class="form-control">
<?php
include_once 'config.php';
mysqli_query($conn,"set names 'utf8'");
$sql = "SELECT * FROM region";
$result = mysqli_query($conn, $sql);
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
while ($row = mysqli_fetch_array($result)) {
if ((strpos($url,'/gr/') == true)) {
$perioxi = $row['region_greek'];
} else {
$perioxi = $row['region_english'];
}
echo "<option value='" . $row['region_id'] ."'>" . $perioxi . "</option>";
}
?>
</select>
</div>
<span class="error"><?php echo $option_value_error ?></span>
</div>
它从mysql获取数据并生成下拉列表。 第二个下拉列表在它下面,它与第一个相似,而不是我更改查询,我希望查询是这样的
$sql = "SELECT * FROM region_prefecture WHERE region_id = '14'";
region_id是sql中的列和选项值。 所以问题是,当我点击第一个下拉列表例如值3时,我希望第二个下拉列表更新mysql中列为region_id列为3的数据。
我知道我必须使用javascript onchange功能,但我不知道如何更新它。
仅供参考:新用户注册时使用opencart是一样的。 Opencart对国家选择使用完全相同,然后在另一个下拉列表生成城市。
答案 0 :(得分:0)
你必须在变更和ajax上使用jquery来实现你想要的目标。
<script>
$(document).on("change","#region_id",function(){
//$.ajax request, target.php is your php code that returns new option
$.ajax({
url: "target.php", //target.php should contain $_POST['id'], and a that would act as a return
method: "POST",
data: {
id: $("#region_id").val() //get current value of region_id and send it to target.php
},
dataType: "text",
success: function(data) {
//if target.php is reached and returned data,
//replace the option tags of prefecture_id select element
$("#prefecture_id").html(data); //data is list of option tags returned by target.php
}
});
});
</script>