如何将 js 变量从 ajax 传递到内部 ajax
How to pass js variable from ajax into inner ajax?
我有返回所有claim_id
的 ajax 。从claim_id
,我调用另一个 ajax 来获取此claim_id
的所有字段。但是我无法将第一个 ajax 中的 claim_id
值传递到内部 ajax 中的成功函数中。它将始终返回claim_id
的最后一个值。我怎样才能分别获得claim_id
?
$(document).ready( function () {
var c_id = document.getElementById("c_id").value;
$.ajax({
url: '../rest/CategoryService/compcategory/'+c_id,
type: 'POST',
data: {
format: 'json'
},
error: function() {
$('#info').html('<p>An error has occurred</p>');
},
success: function(data) {
//get the claim id
for (i in data){
var claim_id = data[i].iD;
// alert(claim_id);
//get all the fields for the claim id
$.ajax({
url: '../rest/CategoryService/fieldcategory/'+claim_id,
type: 'POST',
data: {
format: 'json'
},
error: function() {
$('#info').html('<p>An error has occurred</p>');
},
success: function(data2) {
var textfield = "";
//construct the header fields
textfield += "<th>Sub Category</th>";
for (z in data2){
var field = data2[z].field;
textfield += "<th>"+field+"</th>";
}
textfield += "<th>Action</th>";
alert(claim_id);
alert(textfield);
$("#tabledata"+claim_id+" thead").append(
"<tr>"+textfield+"</tr>");
},
});
}
},
});
} );
您可以在第二个ajax
params
中定义它,然后在成功函数中用作this.param_name
var claim_id = data[i].iD;
$.ajax({
url: '../rest/CategoryService/fieldcategory/'+claim_id,
claim_id: claim_id, // defining your custome params here
/*your other params*/
success: function(data2) {
alert(this.claim_id); // will alert your var claim_id variable
}
});
或者第二个选项是在 js 中定义全局变量并成功使用它
基本上,代码中的问题是 for 循环不会等待 ajax 调用完成。这就是你总是得到最后claim_id
的原因。尝试以下代码:
$(document).ready( function () {
var c_id = document.getElementById("c_id").value;
$.ajax({
url: '../rest/CategoryService/compcategory/'+c_id,
type: 'POST',
data: {
format: 'json'
},
error: function() {
$('#info').html('<p>An error has occurred</p>');
},
success: function(data) {
var getClaimData = function(pointer, dataLength) {
var claim_id = data[pointer].iD;
$.ajax({
url: '../rest/CategoryService/fieldcategory/'+claim_id,
type: 'POST',
data: {
format: 'json'
},
error: function() {
$('#info').html('<p>An error has occurred</p>');
},
success: function(data2) {
var textfield = "";
//construct the header fields
textfield += "<th>Sub Category</th>";
for (z in data2){
var field = data2[z].field;
textfield += "<th>"+field+"</th>";
}
textfield += "<th>Action</th>";
alert(claim_id);
alert(textfield);
$("#tabledata"+claim_id+" thead").append(
"<tr>"+textfield+"</tr>");
pointer++;
if(pointer < dataLength) {
getClaimData(pointer, dataLength);
}
},
});
};
getClaimData(0, data.length);
},
});
});
相关文章:
- Ajax内部的Ajax在循环中
- 调用Ajax内部的函数
- Ajax内部触发器成功
- ajax内部传递变量成功
- 如何使用Ajax内部调用JQuery在函数中获取返回值
- 在 ajax 内部调用 ajax
- 使用 Jquery 在 AJAX 内部加载 AJAX
- AJax 内部服务器错误 500
- 使用 jQuery 禁用 AJAX 内部的输入
- 不能连接一个 ajax 中的 javascript 变量,而另一个 ajax 内部的 javascript 变量
- Ajax 在 ajax 内部调用
- ajax内部访问类功能成功
- AJAX内部回调成功
- SAP HANA XSJS Ajax内部服务器错误
- jQuery“Uncaught"在ajax内部调用尝试…抓住
- Ajax内部For循环
- JQuery卷轴在AJAX内部被称为DOM change / insert .load()
- Ajax内部的Ajax有些奇怪的行为
- 可以传递$.Ajax内部变量值为全局
- ajax内部的ajax成功