Javascript Onchange根据值填充不同的下拉列表
我正在尝试填充第二个下拉列表,在选择第一个选项后,第二个下拉列表中没有显示任何内容 我的第一个选择:Javascript Onchange根据值填充不同的下拉列表,javascript,php,ajax,forms,dropdown,Javascript,Php,Ajax,Forms,Dropdown,我正在尝试填充第二个下拉列表,在选择第一个选项后,第二个下拉列表中没有显示任何内容 我的第一个选择: <select name="inst" class="form-control" required="" id="inst"> <option value=0 selected=1>Select...</option> <?php $sql="SELECT * FROM sapinst"; $myData
<select name="inst" class="form-control" required="" id="inst">
<option value=0 selected=1>Select...</option>
<?php
$sql="SELECT * FROM sapinst";
$myData=mysqli_query($GLOBALS['con'],$sql);
if (mysqli_num_rows($myData) > 0){
while ($row = mysqli_fetch_array($myData))
{
echo '<option value="' .$row["nbd"]. '">' .$row["nome"]. '</option>';
}
}
else{echo "No categories were found!";}
?>
</select>
我的第二个选择:
<select id= "sub" name="sub" class="form-control"></select>
我的剧本:
<script type="text/javascript">
$("#inst").change(function () {
//get category value
var cat_val = $("#inst").val();
// put your ajax url here to fetch subcategory
var url = '/ajax.php';
// call subcategory ajax here
$.ajax({
type: "POST",
url: url,
data: {
cat_val: cat_val
},
success: function (data)
{
$("#sub").html(data);
}
});
});
</script>
我的Ajax.php文件:
<?php
require_once 'edp/configdbedp.php';
$prod_cat = $_POST['cat_val'];
$sql = "SELECT * FROM " . $dbname . ".sappainel WHERE nbd = '$prod_cat'";
$result = mysqli_query($conn, $sql);
$msg = '';
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result)) {
$msg =. '<option value="' . $row["nome"] . '">' . $row["nome"] . '</option>';
}
} else {
$msg .= "No categories were found!";
}
echo $msg;
mysqli_close($conn);
?>
如果我试图用Ajax php打印一些东西,我就无法…似乎Ajax.php无法运行。
我调用正确吗?第二个ajax调用正确吗?
检查开发者选项F12中的控制台消息,查看ajax调用中的错误
您可能希望这样做,因为两个类别都是相同的。它可能给出了一个错误-
data: {
cat_val: cat_val_local //different variable names here.
},
还可以从$TABLE_NAMEnot@dbname中选择*
下一步移除额外的。[点]这里->。sappainel在哪里
您还可以尝试将console.log放入success回调,查看success是否返回任何元素
success: function (data)
{
console.log(data);
$("#sub").html(data);
}
如果没有显示任何内容,那么您的php可能是错误的。也添加一个eror回调!像这样-
error: function (e)
{
console.log(e);
}
希望这有帮助。我已经解决了
票据上的差异:
<script type="text/javascript">
$("#inst").change(function(){
//get category value
var cat_val = $("#inst").val();
// put your ajax url here to fetch subcategory
var url = 'ajax.php';
// call subcategory ajax here
$.ajax({
type:"POST",
url:url,
data:{
cat_val : cat_val
},
success:function(data)
{
$("#sub").html(data);
}
});
});
</script>
关于ajax.php
<?php
require_once 'edp/configdbedp.php';
$prod_cat = $_POST["cat_val"];
$sql = "SELECT * FROM ".$dbname.".sappainel WHERE nbd = '$prod_cat'";
$result = mysqli_query($GLOBALS['con'], $sql);
$msg ='';
if (mysqli_num_rows($result) > 0){
while ($row = mysqli_fetch_array($result))
{
$msg .='<option value="'. $row["nome"] .'">'. $row["nome"] .'</option>';
}
}
else{$msg .="No categories were found!";}
echo ($msg);
mysqli_close($GLOBALS['con']);
?>
您在这一行的服务器端有一个错误:$msg=$行[nome]。;.`应该在==之前,这样您就可以有$msg.=$行[nome]`谢谢Masivuye但是第二个下拉列表继续没有任何内容第二个下拉列表有什么内容没有任何内容…一个空的下拉列表…没有错误没有警告,没有内容