提交和接收ajax表格

时间:2012-11-26 16:31:38

标签: php javascript jquery ajax forms

我有一个PHP脚本,仅用于学习目的。我想在我的网络应用程序上使用ajax表单。从未做过,这是测试PHP脚本。所以我想通过ajax表单名称和密码发送,在php脚本中将检查它是否正确并且它将返回成功(当登录和密码正确时)或错误(当不匹配时)。我的问题是如何发送它并在js或jQuery中正确接收它。任何可以帮助我的人都可能有更好的想法和/或更好的安全功能吗?

我在stackoverflow上找到并尝试了这个脚本:

    //bind an event handler to the submit event for your login form
    $('#login_form').live('submit', function (e) {

        //cache the form element for use in this function
        var $this = $(this);

        //prevent the default submission of the form
        e.preventDefault();

        //run an AJAX post request to your server-side script, $this.serialize() is the data from your form being added to the request
        $.post($this.attr('action'), $this.serialize(), function (responseData) {

        //in here you can analyze the output from your server-side script (responseData) and validate the user's login without leaving the page
});
});

我想知道在php脚本中它是否能像这样工作?:

<?php
$username = $_GET["name"];
$password = $_GET["password"];

if($username="*****" && $password==********)
{
header('Location:http://*****************/jaz/imes/index.html?login="success"');
}else{
header('Location:http://*****************/jaz/imes/index.html?login="error"');
}
?>

正如我所说,这只是一个测试脚本,只是为了更多地了解它。

1 个答案:

答案 0 :(得分:3)

首先,如果您使用的是jQuery 1.8+,请尝试使用on()方法 另一件事是您应该在PHP脚本中为该用户设置会话,然后使用js重定向用户:

jQuery的:

$('#login_form').on('submit', function(){
        $.post($this.attr('action'), $this.serialize(), function (responseData) {
            if(responseData == 'success'){
                window.location = "userpanel.php"
            }else{
                alert('NO MATCHES');
            }
        });
});

PHP:

<?php
$username = $_POST['username'];
$password = $_POST['password'];

// VALIDATING HERE, in db maybe?
if($username == 'blah' && $password == 'blah'){
    $_SESSION['username'] = $username;
    echo "success";
}else{
    echo "failed";  
}

?>

在您的HTML表单中,您需要输入两个ID为“username”和“password”的ID,以便上述代码可以正常工作。