发布到数据库的Ajax没有发布任何内容

时间:2014-11-15 19:27:48

标签: php mysql ajax post

我知道之前已经问过这个问题,但我似乎找到了解决问题的解决方案。我正在尝试使用Ajax帖子将数据发布到Mysql数据库

HTML

<form action="" method="post">
    <input type="text" id="message" name="message">
    <<input type="submit" value="Send" id="submit">
</form>

Ajax帖子

$(document).ready(function(){
    $("#submit").click(function(){
        var message = $("#message").val();
        var data = "message=" + message;
        console.log(data);
        if(message != ''){
            console.log(data);
            $.ajax({
                type: "POST",
                url: "classes/messages.php",
                data: data,
                succes: function(){
                    alert("succes");
                }
            });
        }
        return false;
    });
});

PHP代码

class messages{
    function getMessages(){
        $con = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
        $message = $_POST['message'];

        mysqli_query($con, "INSERT INTO messages(message, time, user_id)
                    VALUES('$message', 'now()', '12')")or die(mysqli_error($con));
        mysqli_close($con);
    }
}

$messages = new Messages();
$messages->getMessages();    

每次我提交表单都没有发生任何事情,甚至不会出现php错误。我检查了Ajax帖子,两个console.log都返回正确的值,所以我认为变量是可以访问的。

我还检查过php函数是否完全执行,就是这种情况。

2 个答案:

答案 0 :(得分:0)

你可以尝试这种简写方法:

var message = "message=" + $("#message").val();
$("#submit").on("click", function(ev)){
    $.post("classes/messages.php", {message: message}, 'json').done(function (data, textStatus, jqXHR) {
        console.log("succes");       
    }).fail(function () {
        console.log("Fail");
        return false;
    }).always();
}

使用on它比推荐选择器本身的功能更好,更值得推荐。

答案 1 :(得分:0)

试试这个

    <html>
    <head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script>
    $(document).ready(function(){

        $("#submit").click(function(){
            var message = $("#message").val();
            var data = "message=" + message;
            console.log(data);
            if(message != ''){
                console.log(data);
                $.ajax({
                    type: "POST",
                url: "classes/messages.php",
                    data: data,
                    success: function(){
                        alert("succes");
                    }
                });
            }
            return false;
        });
    });
    </script>
    </head>
<body>
    <form action="" method="post">
        <input type="text" id="message" name="message">
        <input type="button" value="Send" id="submit">
    </form>
</body>
    </html>

<?php
class messages{
    function getMessages(){
        $con = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
        $message = $_POST['message'];

        mysqli_query($con, "INSERT INTO messages(message, time, user_id)
                    VALUES('$message', 'now()', '12')")or die(mysqli_error($con));
        mysqli_close($con);
    }
}

$messages = new Messages();
$messages->getMessages();    

基本上我将“{1}}改为”&#39;提交&#39; 。因为它是一个提交按钮,所以ajax调用从未完成,而是表单正在提交。