我读过许多与此相关的文章,包括https://www.9lessons.info/2010/08/dynamic-dependent-select-box-using.html和http://blog.chapagain.com.np/using-jquery-ajax-populate-selection-list/
但这对我不起作用,我也不知道为什么。
HTML
div class="col-sm-6">
<label for="selectComplvl" class="regions" >Region</label></div>
<div class="col-sm-6">
<select class="form-control levelbox" id="region" value="" name="region">
<option value="base">---Select---</option>
<?php
$region_sql = "SELECT * FROM `regions`";
$region_res = mysqli_query($con, $region_sql);
if(mysqli_num_rows($region_res) > 0){
while($region_row = mysqli_fetch_array($region_res)){
echo "<option value='".$region_row[id]."'>".$region_row[region]."</option>";
}
}
?>
</select>
<div class="help-block with-errors"></div>
</div>
</div>
</div>
<div class="form-group col-sm-3">
<div class="row">
<div class="col-sm-6">
<label for="compEntered" class="comp">compeition Entered</label></div>
<div class="col-sm-6">
<select class="form-control" id="compEntered" name="compEntered">
<option value="base">Please choose a Region</option>
</select>
<div class="help-block with-errors"></div>
</div>
</div>
</div>
</div>
getcomp.php
<?php
if($_POST['id'])
{
$id=$_POST['id'];
$sql=mysqli_query("select * from comp_entered where region_id='$id'");
while($row=mysqli_fetch_array($sql))
{
echo '<option value="'.$row['region_id'].'">'.$row['comp_entered'].'</option>';
}
}
?>
JS
$(document).ready(function(){
$("#region").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "getcomp.php",
data: dataString,
cache: false,
success: function(html)
{
$("#compEntered").html(html);
}
});
});
});
TABLE区域
| id | 区域 |
| 1 |中美洲|
| 2 |大西洋中部|
| 3 |美国南部|
TABLE comp_entered
| id | region_id | comp_entered |
| 1 | 1 | compA |
| 2 | 1 | compB |
| 3 | 2 | comp C |
| 4 | 2 | compD |
| 5 | 3 | comp E |
| 6 | 3 | comp F |
我的代码有什么问题?使这项工作最好的方法是什么?
答案 0 :(得分:1)
我发现了我的问题!感谢Jordan指出我应该检查我的错误日志!!问题出在我的getcomp.php文件中。
如果有人遇到类似问题,我会在这里发布答案。
这是正确的代码:
if($_POST['id'])
{
$id=$_POST['id'];
$sql= "select * from comp_entered where region_id='$id'";
$res= mysqli_query($con, $sql);
while($row=mysqli_fetch_array($res))
{
echo '<option value="'.$row['region_id'].'">'.$row['comp_entered'].'</option>';
}
}
?>
再次感谢乔丹