AJAX没有从php返回结果

时间:2014-07-02 09:01:29

标签: javascript php html ajax

我正在尝试从在线示例中学习,使用php和jquery登录表单,我正在使用完全相同的示例,但由于某种原因,AJAX没有得到任何回报,但重定向到另一个PHP。 这是我一直在尝试的问题和问题的链接。

http://rentaid.info/Bootstraptest/testlogin.html

它应该得到结果并将其显示在同一页面上,但它会将我重定向到另一个空白的php,其结果就是它。 谢谢你的时间,我提供了我所拥有的所有代码,我希望这个问题不是太愚蠢。

HTML代码

<!DOCTYPE HTML>
<html>
    <head>
    </head>
    <body>
        <form id= "loginform" class="form-horizontal" action='http://rentaid.info/Bootstraptest/agentlogin.php' method='POST'>
            <p id="result"></p>
            <!-- Sign In Form -->
            <input required="" id="userid" name="username" type="text" class="form-control" placeholder="Registered Email" class="input-medium" required="">
            <input required="" id="passwordinput" name="password" class="form-control" type="password" placeholder="Password" class="input-medium">
            <!-- Button -->
            <button id="signinbutton" name="signin" class="btn btn-success"  style="width:100px;">Sign In</button>
        </form>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script type="text/javasript" src="http://rentaid.info/Bootstraptest/test.js"></script>
    </body>
</html>

Javascript

$("button#signinbutton").click(function() {
    if ($("#username").val() == "" || $("#password").val() == "") {
        $("p#result).html("Please enter both userna");
    } else {
        $.post($("#loginform").attr("action"), $("#loginform:input").serializeArray(), function(data) {
            $("p#result").html(data);
        });
        $("#loginform").submit(function() {
            return false;
        });
    }
});

PHP

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
ob_start();
session_start();
include 'connect.php';
//get form data
$username = addslashes(strip_tags($_POST['username']));
$password = addslashes(strip_tags($_POST['password']));
$password1 = mysqli_real_escape_string($con, $password);
$username = mysqli_real_escape_string($con, $username);
if (!$username || !$password) {
    $no = "Please enter name and password";
    echo ($no);
} else {
    //log in
    $login = mysqli_query($con, "SELECT * FROM Agent WHERE username='$username'")or die(mysqli_error());
    if (mysqli_num_rows($login) == 0)
        echo "No such user";
    else {
        while ($login_row = mysqli_fetch_assoc($login)) {

            //get database password
            $password_db = $login_row['password'];

            //encrypt form password
            $password1 = md5($password1);

            //check password
            if ($password1 != $password_db)
                echo "Incorrect Password";
            else {
                //assign session
                $_SESSION['username'] = $username;
                $_SESSION['password'] = $password1;
                header("Location: http://rentaid.info/Bootstraptest/aboutus.html");
            }
        }
    }
}
?>

修改

$("button#signinbutton").click(function(){

    if($("#username").val() ==""||$("#password").val()=="")
$("p#result).html("Please enter both userna");
  else


    $.post ($("#loginform").attr("action"),
        $("#loginform:input").serializeArray(),
    function(data)  {
$("p#result).html(data);  });  




});
 $("#loginform").submit(function(){
    return false;
});

3 个答案:

答案 0 :(得分:2)

首先,删除: -

header("Location: http://rentaid.info/Bootstraptest/aboutus.html");

如果要显示数据,请回显用户名和密码。

$_SESSION['username'] = $username;
$_SESSION['password'] = $password1;
echo $username."<br>".;
echo $password1;

答案 1 :(得分:1)

您被重定向的原因是您也在调用$ .submit。经典表单提交会将您重定向到新页面,这正是您在使用AJAX时不想要的。如果您删除此电话:

$("#loginform").submit(function() {
    return false;
});

你可能应该有工作的解决方案。如果没有,请告诉我:)。

答案 2 :(得分:0)

修改您的javascript部分以便

$("button#signinbutton").click(function() {
    if ($("#username").val() == "" || $("#password").val() == "") {
        $("p#result).html("Please enter both userna");
    } else {
        $.post($("#loginform").attr("action"), $("#loginform:input").serializeArray(), function(data) {
            $("p#result").html(data);
        });
    }
});

$("#loginform").submit(function() {
    return false;
});

在函数调用之外。