[英]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文件的問題,在該處編寫的邏輯也可以正常工作,但是控件未返回到js文件(即AJAX成功函數)。 反過來,我無法執行成功函數內編寫的代碼。
請更正我在代碼中犯的錯誤。
以下是執行后所需的PHP代碼,可以將控件返回到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
}
只需移開出口即可; 那會是問題,尤其是沒有必要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.