Jquery Ajax没有从php

时间:2017-09-28 10:33:21

标签: javascript php jquery ajax twitter-bootstrap

我来自南美洲的丹尼尔,我真的需要帮助,我一直在寻找这个问题,但我到目前为止没有运气,简单的解释是,我使用ajax验证登录,它有效,然后所有在经过几次测试运行之后突然间,ajax就不起作用了,我必须做一个全新的项目,只是为了让相同的代码再次工作,只是为了再次打破。

这是一个真正基本的登录,我快速构建以测试Ajax代码,就像我说的,真正基本的“验证”工作2到3次然后它就停止工作了,navbar.php还包括工作navbar和bootstrap

    <!DOCTYPE html>
        <html lang="en">
        <head>
            <?php include "navbar.php";

            ?>

            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
            <link rel="stylesheet" href="estilos.css">
        </head>
        <body>

        <form id="login" method="post" onsubmit="SubmitHandler()">
            <div class="form-group">
                <label for="exampleInputEmail1">Email address</label>
                <input type="email" class="form-control" id="email" name="email"aria-describedby="emailHelp" placeholder="Enter email">
                <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
            </div>
            <div class="form-group">
                <label for="exampleInputPassword1">Password</label>
                <input type="password" class="form-control" id="password" name="password" placeholder="Password">
            </div>
            <div class="form-check">
                <label class="form-check-label">
                    <input type="checkbox" class="form-check-input">
                    Check me out
                </label>
            </div>
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
        <script type="text/javascript">
            function SubmitHandler() {
                var email = $('#email').val();
                var password = $('#password').val();
                $.ajax({
                    type: "POST",
                    url:"procesado.php",
                    data: {'email':email,
                        'password':password},
                    cache: false,
                    success: function(data) {
                        alert(data);
                        if(data==true){
                            alert("Es Correcto/Valid");
                        }
                        else{
                            alert("es Incorrecto/Invalid");
                        }
                    }
                });
            }

        </script>
        </body>
        </html>

以下是一个名为Procesado的php,它只是连接到主要详细信息位于bd.php上的那个数据库,其中包含了on_once,并将第一个输入(电子邮件)和第二个(密码)与数据库进行比较并返回真或假

  <?php
        include_once 'bd.php';
        /**
         * Created by PhpStorm.
         * User: Phsic
         * Date: 26-Sep-17
         * Time: 8:47 PM
         */

        $email = mysqli_real_escape_string($conn,$_POST['email']);
        $password = mysqli_real_escape_string($conn,$_POST['password']);
        $url = $_SERVER['HTTP_REFERER'];
        $sql = "SELECT * FROM usuario WHERE correo_usuario = '' AND clave_usuario = 'lalass'";

        $result = mysqli_query($conn, $sql);

        $count = mysqli_num_rows($result);
        $row = mysqli_fetch_array($result);
        if($count == 1){
            $_SESSION['user_session'] = $row['correo_usuario'];
            echo true;
        }
        else {
            echo false;
        }
        exit;
        ?>

我真的不知道还有什么可以尝试,我已经重写了这段代码,在网上查看了不同的指南,并且在一些用途后它总是会中断,如果有人想知道警报(数据)在第一个代码上返回什么,它只是跳过它完全直接进入警报(“es Incorrecto / Invalid”);在此先感谢并为我破碎的英语和代号不佳的代码感到抱歉,我是一个初学者,我真的很喜欢这一切。

1 个答案:

答案 0 :(得分:0)

老实说,你对php的回复应该是一个你可以分析的JSON字符串。

但是,只是为了让它工作,让PHP返回一个字符串。

if($count == 1){
    $_SESSION['user_session'] = $row['correo_usuario'];
    echo "true";
}
else {
    echo "false";
}

然后在ajax上

if(data=="true")

但是你绝对应该尝试使用JSON在ajax调用和服务器端之间进行通信。

如果这不是发布的,那么您的数据库连接可能会失败,从而引发错误。

要调试它,请进一步添加到您的ajax:

error: function(data) {alert(data);}