我有一个下拉菜单,其中一个是州,第二个是子类别,它根据第一个下拉列表显示城市名称。现在用户需要选择一个类别然后加载子类别,我想要的更改是在页面加载时“将一个值设置为默认值并也加载它的子类别”,然后进一步的用户选择不同的类别,因此它应该相应地加载它的子类别。
Index.php:
<form name="insert" action="" method="post">
<table width="100%" height="117" border="0">
<tr>
<th width="27%" height="63" scope="row">Sate :</th>
<td width="73%">
<select onChange="getdistrict(this.value);" name="state" id="state" class="form-control">
<option value="">Select</option>
<?php $query =
mysqli_query($con,"SELECT * FROM state");
while($row=mysqli_fetch_array($query))
{ ?>
<option value="<?php echo $row['StCode'];?>">
<?php echo $row['StateName'];?>
</option>
<?php }?>
</select>
</td>
</tr><tr>
<th scope="row">District :</th>
<td>
<select name="district" id="district-list" class="form-control">
<option value="">Select</option>
</select>
</td>
</tr>
</table>
</form>
<script>
function getdistrict(val) {
$.ajax({
type: "POST",
url: "get_district.php",
data: "state_id=" + val,
success: function (data) {
$("#district-list").html(data);
},
});
}
</script>
get_district.php:
<?php
require_once("config.php");
if(!empty($_POST["state_id"])){
$query =mysqli_query($con,"SELECT * FROM district WHERE StCode = '" . $_POST["state_id"] . "'");
?>
<option value="">Select District</option>
<?php
while($row=mysqli_fetch_array($query)){
?>
<option value="<?php echo $row["DistrictName"]; ?>"><?php echo $row["DistrictName"]; ?></option>
<?php
}
}
?>
你需要做两件事
1.)将选定的标志插入输入
2.)激活页面加载的第二个下拉菜单
1.)如果选定的条目永不更改,则对代码中的默认选定字段进行硬编码,例如$ var = XXX,然后回显“ selected”。如果您具有任何计算默认值的功能,例如maxmind.com之类的地理位置服务,该服务会获取用户的远程IP地址并输出其当前状态,则可以使用此结果来设置所选条目。
<?php
while($row=mysqli_fetch_array($query)){
$row["StCode"] == "DESIRED_VALUE" ? $selected ="selected" : $selected ="";
?>
<option value="<?php echo $row['StCode'];?>" <?= $selected ?> ><?php echo $row['StateName'];?>
</option>
[...]
或在表SELECTED中添加一个字段,在其中将默认记录标记为1。
<?php
while($row=mysqli_fetch_array($query)){
$row["selected"] == 1 ? $selected ="selected" : $selected ="";
?>
<option value="<?php echo $row['StCode'];?>" <?= $selected ?> >
<?php echo $row['StateName'];?>
</option>
[...]
2)您必须在页面加载上设置第二个选择下拉菜单。有几种方法可以做到这一点-在这里详细说明:jQuery onload执行onchange事件
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句