如何在同一页面上显示一个PHP页面的响应

时间:2013-05-06 21:52:23

标签: php jquery html

假设我有一个带有两个输入字段的登录表单,即电子邮件地址&密码。当用户单击提交按钮时,如果响应为否定,则说明帐户不存在或密码不正确(假设我有另一个用于此身份验证的php文件),我希望在表单下方显示一条错误消息(相同的登录页面)。我怎样才能做到这一点?

PS。我在线搜索了一下,似乎有可能用隐藏的部分完成这类任务,比如this post。所以请尽可能提出一些更好的方法。

PS2。我认为这可以用ajax完成(可能更好用JQuery)。如果是这样,一个简单优雅的例子将非常感激。

结果最后,我发现了一篇很好的帖子,解释了如何实现我对JQuery的期望,你可能会发现link有用。

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分: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>