我试图使自己的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();
}
}
答案 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收到了什么。
我的经验是,一旦您可以看到发生了什么,调试就变得非常快捷,容易。而猜测无济于事。