我有一个很大的问题,在重新评分ajax请求.if的ajax请求成功,我想设置变量的值为1,如果不成功,它保留为0 .but我的程序不能正常工作,.what是问题,如何解决是问题?
$(document).on('click', '.overtime_send', function() {
temp = 0;
$('#employee_table tbody tr').each(function(row, tr) {
var emp_no = $(tr).find('td:eq(0)').text();
var ot_hours = $(tr).find('input').val();
//ot_array.push([emp_no,ot_hours]);
$.ajax({
url: 'otrequset_action.php',
type: 'POST',
data: { action:'add_ot',emp_no : emp_no, ot_hours:ot_hours},
dataType:"json",
success:function(data)
{
if(data.success)
{
swal("Good job!", "OverTime Request Send Successfully!", "success");
temp = 1;
dataTable.ajax.reload();
}
}
});
});
alert(temp);//data.success alert display but value is still 0
if (temp == 1) {
$.ajax({
url: 'otrequset_action.php',
type: 'POST',
data: { action:'add_comment'},
dataType:"json",
success:function(data)
{
if(data.success)
{
dataTable.ajax.reload();
}
}
});
}
swal({title: "No data entering?",text: "Not set the overtime hours !",type: "warning"});
}); 发布于 2019-10-18 12:05:53
(document).on('click', '.overtime_send', function() {
temp = 0;
$('#employee_table tbody tr').each(function(row, tr) {
var emp_no = $(tr).find('td:eq(0)').text();
var ot_hours = $(tr).find('input').val();
//ot_array.push([emp_no,ot_hours]);
$.ajax({
url: 'otrequset_action.php',
type: 'POST',
data: { action:'add_ot',emp_no : emp_no, ot_hours:ot_hours},
dataType:"json",
success:function(data)
{
swal("Good job!", "OverTime Request Send Successfully!", "success");
temp++;
dataTable.ajax.reload();
if (temp == 1) {
$.ajax({
url: 'otrequset_action.php',
type: 'POST',
data: { action:'add_comment'},
dataType:"json",
success:function(data)
{
if(data.success)
{
dataTable.ajax.reload();
}
}
});
}
}
});
});
swal({title: "No data entering?",text: "Not set the overtime hours !",type: "warning"});
});发布于 2019-10-18 11:44:46
在第一个ajax请求的成功函数中,data.success if条件的作用是什么。你是在php代码中设置它,然后返回吗?
success:function(data)
{
if(data.success)
{
swal("Good job!", "OverTime Request Send Successfully!", "success");
temp = 1;
dataTable.ajax.reload();
}
}我不认为你需要那个if条件。删除该条件,然后尝试。
此外,创建一个错误函数来处理不成功的情况。
发布于 2019-10-18 11:50:33
$(document).on('click', '.overtime_send', function() {
temp = 0;
$('#employee_table tbody tr').each(function(row, tr) {
var emp_no = $(tr).find('td:eq(0)').text();
var ot_hours = $(tr).find('input').val();
$.ajax({
url: 'otrequset_action.php',
type: 'POST',
data: { action:'add_ot',emp_no : emp_no, ot_hours:ot_hours},
dataType:"json",
success:function(data) {
if(data.success) {
swal("Good job!", "OverTime Request Send Successfully!", "success");
if (temp != 1) {
$.ajax({
url: 'otrequset_action.php',
type: 'POST',
data: { action:'add_comment'},
dataType:"json",
success:function(data) {
if(data.success) {
dataTable.ajax.reload();
}
}
});
}
temp = 1;
dataTable.ajax.reload();
}
}
});
});
swal({title: "No data entering?",text: "Not set the overtime hours !",type: "warning"});
});Ajax只有在请求成功时才会执行成功函数(即延迟一段时间后才会执行成功)。但是,即使ajax不完整(异步执行),剩余的代码也会运行。当你打印或使用它的时候,它仍然是0;
https://stackoverflow.com/questions/58443528
复制相似问题