为什么控件没有从 PHP 文件返回到 AJAX 成功函数?
Why the control is not getting returned from PHP file to AJAX success function?
我正在为我的网站使用 PHP、Javascript、AJAX。
下面只放了必要的代码。
JS代码(AJAX函数代码):
$("#btn_add_event").click(function(){
var strSeriaze = $( "#formAddEvent" ).serialize();
url = $( "#formAddEvent" ).attr('action');
$("#btn_add_event").attr('disabled', 'disabled');
$("#addEventErrorMsg").html('');
$.ajax({
url: url,
type: "POST",
data: {postData:strSeriaze},
beforeSend: function(){
$('#loader-icon').show();
},
complete: function(){
$('#loader-icon').hide();
},
success: function(data){
//Control is not returning here on success from PHP file
$('#loader-icon').hide();
if(data == "Success")
{
$("#myModal-add-event").modal('hide');
$("#myModal-add-event").hide();
window.location.href = site_url + "event_index.php";
return false;
}
else
{
$("#btn_add_event").attr('disabled', false);
$("#addEventErrorMsg").show();
$("#addEventErrorMsg").html(data);
}
},
error: function(){}
});
})
我试图调试调用完美地转到 PHP 文件的问题,那里写的逻辑也有效,但控件没有 returned 到 js 文件(即AJAX 成功函数)。反过来,我无法执行在成功函数中编写的代码。
请更正我在代码中犯的错误。
以下是必要的PHP代码,执行后预计return控制js文件(即AJAX成功函数),但它没有发生。
if($ret) {
$eventAddResultArr = $objEvent->GetResponse();
if($eventAddResultArr['msg'] == 'Success') {
echo "Success";
exit;
//From here it is expected to return the control to js file's AJAX success function but it's stopping execution here only
} else {
$errMsg = "";
foreach($eventAddResultArr['msg'] as $key => $err_msg) {
$errMsg .= $err_msg."<br>";
}
echo $errMsg;
exit;
}
}
注意:我在我的代码中添加了注释,以便您更好地理解我的问题。不过,如果您需要有关我面临的问题的任何进一步信息,请告诉我。
谢谢。
只是移除出口;就是这个问题,尤其是没必要。
如果您没有在 ajax 中使用 DataType,那么您可以按照以下步骤操作:
在php
使用echo true;
代替echo "Success";
并在 Ajax 中检查:
if(data == true) {
//your code
}
我正在为我的网站使用 PHP、Javascript、AJAX。
下面只放了必要的代码。
JS代码(AJAX函数代码):
$("#btn_add_event").click(function(){
var strSeriaze = $( "#formAddEvent" ).serialize();
url = $( "#formAddEvent" ).attr('action');
$("#btn_add_event").attr('disabled', 'disabled');
$("#addEventErrorMsg").html('');
$.ajax({
url: url,
type: "POST",
data: {postData:strSeriaze},
beforeSend: function(){
$('#loader-icon').show();
},
complete: function(){
$('#loader-icon').hide();
},
success: function(data){
//Control is not returning here on success from PHP file
$('#loader-icon').hide();
if(data == "Success")
{
$("#myModal-add-event").modal('hide');
$("#myModal-add-event").hide();
window.location.href = site_url + "event_index.php";
return false;
}
else
{
$("#btn_add_event").attr('disabled', false);
$("#addEventErrorMsg").show();
$("#addEventErrorMsg").html(data);
}
},
error: function(){}
});
})
我试图调试调用完美地转到 PHP 文件的问题,那里写的逻辑也有效,但控件没有 returned 到 js 文件(即AJAX 成功函数)。反过来,我无法执行在成功函数中编写的代码。
请更正我在代码中犯的错误。
以下是必要的PHP代码,执行后预计return控制js文件(即AJAX成功函数),但它没有发生。
if($ret) {
$eventAddResultArr = $objEvent->GetResponse();
if($eventAddResultArr['msg'] == 'Success') {
echo "Success";
exit;
//From here it is expected to return the control to js file's AJAX success function but it's stopping execution here only
} else {
$errMsg = "";
foreach($eventAddResultArr['msg'] as $key => $err_msg) {
$errMsg .= $err_msg."<br>";
}
echo $errMsg;
exit;
}
}
注意:我在我的代码中添加了注释,以便您更好地理解我的问题。不过,如果您需要有关我面临的问题的任何进一步信息,请告诉我。
谢谢。
只是移除出口;就是这个问题,尤其是没必要。
如果您没有在 ajax 中使用 DataType,那么您可以按照以下步骤操作:
在php
使用echo true;
代替echo "Success";
并在 Ajax 中检查:
if(data == true) {
//your code
}