我使用jQuery構建了一個簡單但工作正常的AJAX表單。表單在提交之前用jQuery驗證,然後用PHP再次成功提交。將數據從PHP發送到jQuery
唯一的問題是錯誤處理。當PHP檢查返回所有字段都沒問題時,我會顯示一條成功消息。如果出現錯誤,我只會顯示「出現錯誤」。
如何從PHP發回數據到jQuery,這樣無效的字段可以被標記爲無效?
或者這種形式的錯誤處理是不必要的,因爲動態突出顯示需要打開JavaScript並且如果打開JavaScript,表單不能被提交錯誤?
基本上,我的有效支票看起來像這樣(簡化當然):
function checkSomething($something) {
$valid = true;
if (strlen($something) === 0) {
$valid = false;
}
return $valid;
}
在腳本的末尾,我不喜歡這樣寫道:
if (checkSomething($something) && checkThis($this) && checkThat($that)) {
echo "success";
} else {
echo "error";
}
而且在我的JavaScript/jQuery代碼它看起來像這樣:
$.ajax({
url: "form.php",
type: "POST",
data: string,
success: function (result) {
if (result == "success") {
alert("success");
} else {
alert("error");
}
}
});
你需要從PHP回顯更多東西,告訴你什麼失敗了,然後用JS處理這個響應,以顯示任何適合的消息。發佈一些代碼並告訴我們你現在是如何設置的,並且它會更容易幫助。 – adeneo 2013-02-15 20:24:46
如果你有jQuery驗證並啓用了JS,那麼你的PHP驗證可能永遠不會發揮作用(它只是爲了預防措施)。換句話說,如果您的客戶端驗證正在工作,那麼您的服務器端驗證將不會有任何消息發回。如果您的客戶端驗證被禁用或繞過,那麼您的服務器端驗證將接管。如果客戶端的JS被禁用,那麼無論如何你都不能通過jQuery發回任何消息。也顯示代碼。 – Sparky 2013-02-15 20:28:39
他應該仍然返回一個JSON響應。如果它被繞過,那並不意味着Javascript被禁用。即使它是,它應該返回JSON響應,如果Javascript被禁用,它將在瀏覽器中顯示爲文本。 – crush 2013-02-15 20:36:36