javascript - PHP 代码返回其脚本并且在 JQuery Ajax 中不起作用

标签 javascript php jquery mysql ajax

我想用 Aptana IDE 和 xampp 做一个网站,它有几个页面。索引页是所有未登录系统的用户访问的地方,主页是所有登录系统的用户必须访问的地方。我是开发网站的新手。

我决定使用 Ajax 登录注册页面。它实际上工作正常。但现在我不知道为什么它没有。

在我的 login.html 页面中

<form id="login-form" class="text-left" method="post">
                <div class="main-login-form">
                    <div class="login-group">
                        <div class="form-group">
                            <label for="lg_username" class="sr-only">Username</label>
                            <input type="text" class="form-control" id="lg_username" name="username" placeholder="username"
                                   data-container="body" data-toggle="popover" data-placement="left" data-content=""
                                   value="">
                        </div>
                        <div class="form-group">
                            <label for="lg_password" class="sr-only">Password</label>
                            <input type="password" class="form-control" id="lg_password" name="password" placeholder="password" 
                                   data-container="body" data-toggle="popover" data-placement="left" data-content="">
                        </div>
                        <div class="form-group login-group-checkbox">
                            <input type="checkbox" id="lg_remember" name="lg_remember">
                            <label for="lg_remember">remember</label>
                        </div>
                    </div>
                    <button type="submit" class="login-button">Submit</button>
                </div>
            </form>

并使用 JQuery 验证表单验证

$(document).ready(function () {
        $('#login-form').validate({
    rules: { //rules goes here},
    messages: { //messages goes here},
    submitHandler: submitForm
});

它工作正常。我的所有规则都已执行。

提交功能:

function submitForm(){
            var username = $('#lg_username').val();
            var password = $('#lg_password').val();
            var checkbox = $('#lg_remember').is(":checked");

            var strAjax = "username=" + username + "&password=" + password + "&checkbox=" + checkbox;
            alert(strAjax);
            $.ajax({
                type: 'POST',
                url: 'loginAjax.php',
                data: strAjax,
                cache: false,
                success: function(data) {
                    alert(data);
                    if(data == "1") {
                        window.location.href = "home.php";
                    }
                    else {
                        //Error messages
                    }
                }
            });
            return false;
            }

loginAjax.php 文件:

<?php
require_once 'dbcon.php';
session_start();

$username = mysql_real_escape_string($_POST["username"]);
$password = mysql_real_escape_string($_POST["password"]);

$sql = "SELECT * FROM tbl_user WHERE userName = '$username' AND password = '$password'";

$result = mysql_query($sql);
$count = mysql_num_rows($result);
$row = mysql_fetch_array($result);

if($count == 1){
    if($_POST['checkbox'] == TRUE) {
        if(!isset($_COOKIE['name'])) {
            setcookie( 'name', $row['userName'], time() + (86400 * 30) );
        }
    }
    $_SESSION['user_session'] = $row['userName'];
    echo TRUE;
}
else {
    echo FALSE;
}
?>

dbcon.php 文件连接到mysql 数据库。我试图控制它是输入 ajax 方法还是从带有警报的 php 文件返回的内容。 strAjax 似乎是正确的,但 alert(data) 显示我的 php 代码是这样的;

php returns this

我将登录文件更改为 php 文件而不是 html。但问题不在于此。我所有的 ajax 代码都从类似的 php 获取数据。在我的电脑中,php 文件运行正常。如果您需要更多信息,我可以编辑我的帖子。为什么这个 ajax conk?

最佳答案

var formData = {
    'username'              : $('input[name=username]').val(),
    'password'             : $('input[name=password]').val(),
    'lg_remember'    : $('input[name=lg_remember]').val()
};

// process the form
$.ajax({
    type        : 'POST', // define the type of HTTP verb we want to use (POST for our form)
    url         : 'process.php', // the url where we want to POST
    data        : formData, // our data object
    dataType    : 'json', // what type of data do we expect back from the server
                encode          : true
})

试试这个

关于javascript - PHP 代码返回其脚本并且在 JQuery Ajax 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35403005/

相关文章:

javascript - 如果已经发布,如何限制用户不再在同一页面上发布

javascript - 我们如何在主函数内部调用带有参数的函数

javascript - 当用户将焦点放在输入框中时,我可以使用 JavaScript 设置区域语言吗?

php - 如何在 Jquery 中制作一个 Accordion ,用 PHP 显示 MySQL 数据库中的数据?

php javascript 警报框必须单击 2 次才能显示

带 CheckBox 组的 JQuery 验证插件

javascript - JQuery .toggle ('slide' ) 不滑动它看起来更像 .show() 或 .hide()

javascript - 如何制作一个表格一次显示3个问题

javascript - maxfilesexceeded 事件未在 dropzone js 中触发

javascript - 图像叠加网格