簡體   English   中英

Ajax發布到數據庫不發布任何內容

[英]Ajax post to database doesn't post anything

我知道以前已經有人問過這個問題,但是我似乎可以找到解決該問題的解決方案。 我正在嘗試通過Ajax發布數據到Mysql數據庫

HTML

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

阿賈克斯郵報

$(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函數,情況就是這樣。

您可以改用以下速記方法:

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它的更好,建議不僅僅觸發選擇器本身的功能。

嘗試這個

    <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調用,而是提交了表單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM