2011-09-12 111 views
0

我已經在那裏,如果一個字段沒有填寫的PHP驗證「回聲報」這樣的錯誤這樣做過:PHP錯誤消息觸發AJAX的jQuery顯示錯誤信息 - 表單驗證

if(empty($_POST['formfield'])) { 
echo "Error"; 
die(); 
} else { 
    ... 
} 

然後引發像這樣jQuery驗證一個MSG(這是僞代碼):

success: function(data) { 
if (data=="Error") { 
$("#Error").html('ERROR MSG HERE').show(); 
} else { 
$("#Success").html('SUCCESS MSG HERE').show(); 
} 

我最近不得不建立一些網頁用一個簡單的日誌在一個供應商來下載文件。再一次,這很簡單!

<?php 
$username = "foo"; 
$password = "bar"; 
if ($_POST['username'] != $username || $_POST['password'] != $password) { 
?> 
<!DOCTYPE> 
<html> 
<head></head> 
<body> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" > 
</body> 
</html> 
<?php 
} 
else { 
?> 
<!DOCTYPE> 
<html> 
<head></head> 
<body>Logged in user sees this content</body> 
</html> 
<?php 
} 
?> 

所以我的問題是這樣的
我似乎無法弄清楚如何呼應的消息,然後將窗體上觸發錯誤消息,因爲我在第2個代碼塊已經完成。

顯然

<?php 
$username = "foo"; 
$password = "bar"; 
if ($_POST['username'] != $username || $_POST['password'] != $password) { 
**echo "Error";** 
?> 

只是在頁面加載打印 「錯誤」。我需要找出一種方法來模擬從服務器返回的數據 - 此表單提交給自己 - 並顯示適當的消息(用戶名和/或密碼是不正確的),如果有人使用不正確的用戶名或密碼登錄 我道歉因爲這段時間很長,所以我截斷了所有js的東西,因爲我知道它的工作原理。 謝謝!

回答

2

PHP是在Javascript之前處理的,這使您可以讓PHP寫出想要顯示的Javascript。這樣的事情應該做你想要什麼:

if ($_POST['username'] != $username || $_POST['password'] != $password) { 
?> 
<script> 
$(document).ready(function() { 

    $("#Error").html('ERROR MSG HERE').show(); 

}); 
</script> 
<?php } ?> 
+1

正如注:確保你把這個在頭部或身體標記 – cwallenpoole

+0

@Cfreak - 我給一個鏡頭塔NKS!將它與其他驗證內容集成將需要一些試驗和錯誤。我會看看我能想出什麼,併發布在pastebin中。感謝的人 –

+0

@Cfreak和cwalenpoole - 我必須錯過一些東西。我的PHP「驗證」高於doctype - 如果我在正文或頭部輸出帶有PHP的JS - 如何將它綁定到$ username和$ password不正確的情況? –