Ajax POST呼叫不会发送或提交任何数据

时间:2018-11-12 12:30:22

标签: javascript php jquery ajax

我试图使自己的Submit按钮将数据发送到我的PHP文件而不重新加载,但是,当我使用此调用时,它不发送任何数据,并且都没有保存在数据库中。

$('#formSubmitData').on('submit', function(event) {
    event.preventDefault();
    var msg = $('#textareaSubmitData').val();
    $.ajax({
        url: 'searchData.php', //this is ALSO how the text is being send to the database to be retrieved later on.
        type: 'POST',
        data: {message:msg},
        success: function(data) {
            console.log(data);
            data = msg;
            alert(data);
        }
    });
});

警报显示正确的值,但是在我的数据库中,行仍然为空。

PHP代码如下:

    if (isset($_POST['submit']) && $_SERVER['REQUEST_METHOD'] === "POST") {
        include_once 'dbConn.php';

        $name = $_SESSION['userName'];
        $msg = $_POST['textareaSubmitData'];        

        $stmt = $conn->prepare("INSERT INTO messages (name, message) VALUES (?, ?)");
        $stmt->bind_param('ss', $name, $msg);

        $name = $_SESSION['userName'];
        $msg = $_POST['textareaSubmitData'];
        $stmt->execute();   

        $conn->close();
        $stmt->close();

    } else {
        header('Location: index.php?send=failure');
        exit();         
    }
}

3 个答案:

答案 0 :(得分:1)

想想有2个问题,第一个是您需要确保要发送的数据是一个对象,而不仅仅是一个值...

data: { textareaSubmitData: msg },

第二个是,当您尝试处理数据时,第一行是...

if (isset($_POST['submit']) && $_SERVER['REQUEST_METHOD'] === "POST") {

所以这是在'submit'中寻找一些POST数据-您不发送。因此,当您(现在)仅发送“ textareaSubmitData”时-检查是否已设置...

if (isset($_POST['textareaSubmitData']) && $_SERVER['REQUEST_METHOD'] === "POST") {

答案 1 :(得分:1)

您正在发送数据中的Submit按钮的值。您需要将表单数据发送到服务器。

async

答案 2 :(得分:0)

也–使用浏览器的调试功能,明确地“看看(!)” 。当AJAX调用结束时,您可以查看一个HTML POST,因此,您可以确切地看到URL是什么,以及数据是(或不是)数据。被提供。

在主机端,您还可以执行print_r($_POST)之类的操作,以便再次查看 PHP收到了什么。

我的经验是,一旦您可以看到发生了什么,调试就变得非常快捷,容易。而猜测无济于事。