从PHP脚本中获取数据

时间:2016-10-18 09:48:14

标签: javascript php jquery ajax

因此,在通过Jquery验证表单后,我想知道用户名和密码是否有效。如果是,它应该重定向到另一个页面,否则我想找到一种向用户显示它的方法。在这一点上,我真的很困惑。这是jquery代码:

    $(document).ready(function(e) {
    $('.error').hide();
    $('#staffLogin').submit(function(e) {
        e.preventDefault();
        $('.error').hide();
        uName = $('#staff_username').val();
        pWord = $('#staff_password').val();
        if(uName == ''){
            $('#u_error').fadeIn();
            $('#staff_username').focus();
            return false;
        }
        if(pWord == ''){
            $('#p_error').fadeIn();
            $('#staff_password').focus();
            return false;
        }
        $.ajax({
            type : 'POST', url : 'staff_access.php', data : 'uName='+uName+'&pWord='+pWord,
            success: function(html){
                if(html == 'true'){
                    window.location = 'staff_page.php';
                }
                else{
                    $('#val_error').fadeIn();
                }
            }
        })          
    });
});

PHP:

<?php
                    include('admin/config.php');
                    $username = $_POST['uName'];
                    $password = $_POST['pWord'];
                    $conn = mysqli_connect(DB_DSN,DB_USERNAME,DB_PASSWORD,dbname);
                    if ($conn) {
                       $qry = "SELECT lastname, firstname, FROM staff_user WHERE username='".$username."' AND pass='".$password."";
                        $res = mysqli_query($qry);
                        $num_row = mysqli_num_rows($res);
                        $row=mysql_fetch_assoc($res);
                        if ($num_row == 1) {
                            session_start();
                            $_SESSION['login'] = true;
                            $_SESSION['lastname'] = $row['lastname'];
                            $_SESSION['firstname'] = $row['firstname'];
                            $_SESSION['username'] = $row['username'];
                            echo "true";
                        }
                        else{
                            echo "false";
                        }
                    }
                    else{
                        $conn_err = "Could not connect.".mysql_error();
                    }                    

                mysqli_close($conn);
        ?>

FORM:

    <form name="staff_login" method="post" action="" id="staffLogin">
            <fieldset>
            <legend>Staff Login</legend>
            <span class="fa fa-user fa-5x"></span>
            <br><br>
            <input type="text" name="staff_username" id="staff_username" placeholder="Username">
            <br><span class="error" id="u_error">Username Required</span><br>
            <input type="password" name="staff_password" id="staff_password" placeholder="Password">
            <br><span class="error" id="p_error">Password Required</span><br>
            <span class="error" id="val_error">Incorrect Username and Password combination</span>
            <input type="submit" name="staff_login" value="Login">
            </fieldset>
        </form>

2 个答案:

答案 0 :(得分:0)

您的ajax数据的格式错误。 POST数据应作为对象发送。

$.ajax({
        type : 'POST',
        url : 'staff_access.php',
        data : {
                   uName: uName,
                   pWord: pWord
               },
        dataType: 'text',
        success: function(html){
            if(html == 'true'){
                window.location = 'staff_page.php';
            }
            else{
                $('#val_error').fadeIn();
            }
        }
    });

同时避免使用像&#39; html&#39;这样的文字。由于这个原因,您最终可能会收到不必要的错误。 使用更相关的词语,例如&#34;成功:功能(响应)&#34;

答案 1 :(得分:0)

尝试在ajax配置中定义dataTpe - dataType:“html”