我的AJAX代碼是波紋管如何停止提交按鈕,同時響應引發的錯誤(PHP錯誤)
$("#step_3 :submit").click(function(event) {
event.preventDefault();
var formData = $("#dbConfigID").serialize();
$.ajax({
url: "../pard_config/dbconfig.php",
type: "POST",
data: formData,
beforeSend:function(){
},
success: function(responce) {
$("#res").show().html(responce);
}
});
});
PHP代碼(只有抓)
catch (Exception $e) {
echo 'Warnning: ', $e->getMessage(), "\n";
}
如果我的數據庫憑據是錯誤的,它仍然顯示在螢火蟲200成功代碼。而我的提交按鈕正在觸發,而php阿賈克斯響應是一個錯誤,像波紋管
Warnning: SQLSTATE[HY000] [2005] Unknown MySQL server host 'localhosts' (1)
如何停止按鈕觸發,而這是一個像上面的錯誤?
這兩個動作/過程是完全分開的。一旦發送AJAX請求,該部分就結束了。你會得到200 OK,因爲請求是成功的。另一方面,如果PHP端在處理請求時產生錯誤,則無法返回JavaScript並阻止原始請求。你可以做的是在PHP端回顯錯誤,如果發生錯誤,並在AJAX端,處理你得到的響應,即成功或錯誤。 – ebadedude
問題是我有4個步驟...而我按#step_3:提交按鈕它將隱藏第2步,併成功打開第4步...如果PHP返回錯誤同樣的事情已經返回:(我的意思是我的第4步正在打開。我想停止這個步驟 – wasana
如果你返回一個格式良好的錯誤,你可能不想對'success'進行任何操作,如果你的程序報錯了,你可能需要爲' $ .ajax'來處理這種情況。對於提交問題,您可以返回false或設置您的提交按鈕來調用上述函數並返回false: '' 然後在成功的情況下,觸發提交 – ebadedude