php - Ajax 发布到数据库不发布任何内容

标签 php mysql ajax post

我知道之前有人问过这个问题,但我似乎可以找到解决我的问题的解决方案。我正在尝试使用 Ajax post 将数据发布到 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.logs 都返回了正确的值,所以我认为该变量是可访问的。

我还检查了 php 函数是否完全执行,确实如此。

最佳答案

试试这个

    <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();    

基本上我从 `'submit' 更改了 input type='button' 。由于它是一个提交按钮,ajax 调用从未完成,而是提交了表单。

关于php - Ajax 发布到数据库不发布任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26949791/

相关文章:

php - 如何扩展 Yii 框架类以及放置文件的位置

javascript - 如何使用 php-function-output 作为 javascript 的输入?

php - 如何在没有密码的情况下在 MediaWiki 1.19 中授权用户?

php - 将多维数组的一部分插入mysql数据库

MySQL 仅在插入或唯一键上更改排序规则

javascript - 为什么我收到跨源请求被阻止 : The Same Origin Policy disallows reading the remote resource

jquery - Ajax 发布表格每行第一个单元格

jquery - 如何获取 Select2 下拉列表中的所有值?

javascript - 加载数据时的AngularJS ng-grid进度条

Mysql 多查询出现错误 #1064 -