2013-05-06 97 views
1

假設我有一個帶有兩個輸入字段的登錄表單,即電子郵件地址&密碼。當用戶點擊提交按鈕時,如果響應是否定的,任何一個帳戶不存在或密碼不正確(假設我有另一個用於此身份驗證的php文件),我希望會在窗體下顯示一條錯誤消息(相同的登錄頁面)。我怎樣才能做到這一點?如何在同一頁面上顯示一個PHP頁面的響應

PS。我在網上搜索了一下,看起來有可能用隱藏部分完成這種類型的任務,就像this post一樣。所以請儘可能提出一些更好的方法。

PS2。我認爲這可以用ajax來完成(可能用JQuery更好)。如果是這樣,一個簡單的優雅的例子將不勝感激。

RESULT最後,我發現了一篇不錯的文章,解釋瞭如何用JQuery實現我所期望的,您可能會發現這個link有幫助。

+2

去這裏的方法是使用AJAX。 – Brad 2013-05-06 21:56:05

+0

你有更具體的問題嗎? – 2013-05-06 21:56:07

+0

@Brad你可以給我一個具體的例子嗎? – 2013-05-06 21:58:02

回答

1

我認爲你在尋找這樣的事情:這裏

 $.ajax({ 
      url: 'php/ajax.php', 
      type: 'GET', 
      dataType: 'html', 
      timeout: 1000, 
      error: function() { 
       notifyLoadFail(); 
      }, 
      success: function (data) { 
       notifyLoadFinish(data); 
      } 
     }); 

     function notifyLoadFail(){ 
      $('form[0]').next().append('<h2>Fail. All your base are belong to us.</h2>'); 
     } 

更多信息。

http://api.jquery.com/jQuery.ajax/

+0

這需要jQuery。這個問題沒有提到jQuery。 – Brad 2013-05-06 23:07:39

+0

是的,這正是我想要的。但是,你能告訴我,我怎樣才能用這種** .ajax **函數以一種形式發送一些數據? – 2013-05-07 20:03:56

+0

您必須通過onclick或其他類型的按鈕獲取所需的表單數據,然後使用該事件從目標區域獲取輸入或值。最後,你會將這個值傳遞給你的ajax函數。我喜歡用getJSON(url,data)來包裝ajax函數;所以你可以重新使用它。 – 4m1r 2013-05-07 21:57:46

1

你可以做驗證以及顯示錯誤在一個PHP文件:

<?php 
if (isset($_POST['submit'])) { // form has been sent 

    // do validation here, for example... 
    if (!isset($_POST['user']) || strlen(trim($_POST['user'])) == 0) 
     $error[] = "Please enter your username!"; 

    if (!isset($error)) { // no error => proceed 

     // do something 
    } 
} 
?> 
<!-- next line will display $error if it is set --> 
<?php=(isset($error)?'There were errors: ' . implode(',',$error):'')?> 
<form method="post"> 
<input type="text" name="user" /> 
<input type="submit" name="submit" /> 
</form>  
相關問題