在javascript中使用Ajax调用时出现类型错误/ Jquery
问题描述:
在使用Jquery.I在下面显示我的错误时,我在获取以下错误时提取了一些值。在javascript中使用Ajax调用时出现类型错误/ Jquery
Uncaught TypeError: Cannot read property 'no_of_optional' of undefined
我在下面解释我的代码。
var data = $.param({
'op': 'setPollField',
'sid': id
});
$.ajax({
method: 'POST',
url: "dbcon/DBConnection.php",
data: data
}).done(function(msg) {
var qdata = JSON.parse(msg);
var get = $("#ques").val();
var cntr = 0;
for (var i = 1; i < get; i++) {
if (i != 0) {
$("#questions0").val(qdata[0].questions);
$('#noofoption0').val(qdata[0].no_of_optional);
var data = $.param({
'op': 'getOptional',
'id': qdata[0]['_id']['$id']
});
$.ajax({
method: 'POST',
url: "dbcon/DBConnection.php",
data: data
}).done(function(msg) {
var optdata = JSON.parse(msg);
var cnt = 0;
for (var j = 0; j < qdata[0].no_of_optional; j++) {
}
}
cnt++;
}
})
}
if (i == 1) {
$('#questions' + i).val(qdata[i].questions);
$('#noofoption' + i).val(qdata[i].no_of_optional);
var data = $.param({
'op': 'getOptional',
'id': qdata[i]['_id']['$id']
});
$.ajax({
method: 'POST',
url: "dbcon/DBConnection.php",
data: data
}).done(function(msg) {
var optdata = JSON.parse(msg);
var cnt = 0;
console.log('first question', qdata[i].no_of_optional);
for (var j = 0; j < qdata[i].no_of_optional; j++) {
}
})
}
}
})
我在这个console.log('first question',qdata[i].no_of_optional);
。其实qdata
是包含两个数据集(qdata[0],qdata[1]
)的得到错误,但第二Ajax调用内i
变得2.actually在这里,我期待qdata[1].no_of_optiona
秒Ajax调用内。请帮帮我。
答
使用闭合,由当时的done
回调被称为for
循环已完成,增加i
: -
var data = $.param({
'op': 'setPollField',
'sid': id
});
$.ajax({
method: 'POST',
url: "dbcon/DBConnection.php",
data: data
}).done(function(msg) {
var qdata = JSON.parse(msg);
var get = $("#ques").val();
var cntr = 0;
for (var i = 1; i < get; i++) {
if (i == 1) {
(function(i) {
$('#questions' + i).val(qdata[i].questions);
$('#noofoption' + i).val(qdata[i].no_of_optional);
var data = $.param({
'op': 'getOptional',
'id': qdata[i]['_id']['$id']
});
$.ajax({
method: 'POST',
url: "dbcon/DBConnection.php",
data: data
}).done(function(msg) {
var optdata = JSON.parse(msg);
var cnt = 0;
console.log('first question', qdata[i].no_of_optional);
for (var j = 0; j < qdata[i].no_of_optional; j++) {
}
})
})(i);
}
}
})
@镚:让我来测试它。 – satya
我给了问题的一部分,我得到的问题,但实际上我也有这样的条件'如果(我!= 1){...}'这是不工作,如果我更新你的代码。我正在用完整的代码再次更新我的文章。 – satya
如果条件不起作用,请再次检查我的更新后的帖子。 – satya