2013-05-06 105 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>  
相关问题