Javascript 为什么我要使用未定义的Jquery ajax
我有以下代码。我曾试图将值填充到Javascript 为什么我要使用未定义的Jquery ajax,javascript,jquery,object,Javascript,Jquery,Object,我有以下代码。我曾试图将值填充到框中,但一直得到未定义的 我已经将对象.keys与对象.values进行了切换,但始终得到相同的结果。请有人给我指一下正确的方向 $(文档).ready(函数(){ $(“#ddlcomp”).更改(函数(){ var cid=$(“#ddlcomp”).val(); $.ajax({ url:'doload.php', 方法:“post”, 数据:“catid=”+cid }).done(函数(行){ //console.log(行); rows=JSON.pa
框中,但一直得到未定义的
我已经将对象.keys
与对象.values
进行了切换,但始终得到相同的结果。请有人给我指一下正确的方向
$(文档).ready(函数(){
$(“#ddlcomp”).更改(函数(){
var cid=$(“#ddlcomp”).val();
$.ajax({
url:'doload.php',
方法:“post”,
数据:“catid=”+cid
}).done(函数(行){
//console.log(行);
rows=JSON.parse(行);
console.log(行);
$('#ddlsubcat').empty();
Object.keys(行).forEach(函数(行){
控制台日志(rowss);
$('#ddlsubcat').append(''+rowss.subcat+'');
//$('#ddlsubcat').innerHTML=$('#ddlsubcat').innerHTML+
//''+rowss.subcat+'';
})
//对于(变量i=0,len=rows.length;i
我已经解决了。问题不在于jQueryAjax部分,而在于我用来从数据库提取数据的PHP代码
if(isset($_POST['catid'])){
$catid = $_POST['catid'];
$query = mysqli_query($con, "select * from tbsubcat where catid = '$catid' order by subcat ");
if (mysqli_num_rows($query) > 0){
// while($rows=mysqli_fetch_row($query)){
$rows=mysqli_fetch_all($query,MYSQLI_ASSOC);
echo json_encode($rows);
// }
}
}
注释掉的代码块是原始的>>>mysqli\u fetch\u行,因此我将其更改为mysqli\u fetch\u all
这就解决了问题。AJAX请求的响应是什么?{subcatid:“1”,subcat:“Who is you”,catid:“1”}您只返回一个对象,因此循环是多余的。只需使用rows=JSON.parse(rows)$('#ddlsubcat').html(''+rows.subcat+'')代码>这只是测试数据,在生产中我会有更多数据,那么我该如何满足这些需求呢?提前谢谢。那样的话,你需要一个循环。我建议将您的测试数据以您期望产品使用的确切格式进行,否则您只是要求一些东西被破坏。