AJAX无法向PHP发送数据
我在这个实践项目上开发了一个秘密日记的登录和注册系统。其他一切都正常工作,但我被困在这一部分。实际上,在秘密日记中有一个textarea,我正在尝试这样做,每当textarea发生变化时,AJAX都会将数据传递给php文件,php应该更新数据库AJAX无法向PHP发送数据,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我在这个实践项目上开发了一个秘密日记的登录和注册系统。其他一切都正常工作,但我被困在这一部分。实际上,在秘密日记中有一个textarea,我正在尝试这样做,每当textarea发生变化时,AJAX都会将数据传递给php文件,php应该更新数据库 $("textarea").on("input propertychange", function() { $.ajax({ method: "POST", url: "updatediary.php", data: {
$("textarea").on("input propertychange", function() {
$.ajax({
method: "POST",
url: "updatediary.php",
data: {
content: $("textarea").val()
}
});
});
试试这个
$("textarea").on("input propertychange", function() {
var obj={'val':$("textarea").val()};
$.ajax({
type: 'post',
url: 'updatediary.php',
data:obj,
success: function (data) {
location.reload();
}
});
});
<?php
session_start();
$link = mysqli_connect("localhost", "cl44-secretdr", "********", "cl44-secretdr");
if (mysqli_connect_error())
{
die ("Database Connection Error");
}
if (isset($_POST['val']))
{
$query = "UPDATE `users` SET `diary` = '".$_POST['val']."' WHERE id = '".$_SESSION['id']."'";
$result = mysqli_query($link, $query);
}
?>
$(“textarea”)。在(“输入属性更改”,函数()上{
var obj={'val':$(“textarea”).val()};
$.ajax({
键入:“post”,
url:'updatediary.php',
资料来源:obj,
成功:功能(数据){
location.reload();
}
});
});
您使用的jQuery版本是什么?在1.9版本之前,ajax请求的“method”属性称为“type”。如果您更改该属性,它可能会起作用。试试这个
<script type="text/javascript">
$(document).ready(function(){
$("textarea").on("input propertychange", function() {
value = $("textarea").val();
$.ajax({
type: 'post',
url: 'updatediary.php',
data:{content:value},
success: function (data) {
alert('success');
location.reload();
}
});
});
});
</script>
$(文档).ready(函数(){
$(“textarea”)。在(“输入属性更改”,函数()上{
value=$(“textarea”).val();
$.ajax({
键入:“post”,
url:'updatediary.php',
数据:{content:value},
成功:功能(数据){
警惕(“成功”);
location.reload();
}
});
});
});
及
您正在发送内容
,但在PHP中查找content1
。关闭,因为它只是一个打字错误,我修正了,但仍然没有帮助。数据库仍然对textarea中的任何更改不感兴趣!您确定数据库中存在id=$\u SESSION['id']
的记录吗?它很可能正在执行,而不是实际更改任何数据。您是否调试了请求失败的具体时间点?是的,我尝试调试它,但仍然失败。当我删除AJAX查询并在同一个文件中重写PHP查询时,它应该会在单击按钮时更新数据……这会发生,数据库也会更新。但是,当我将其更改为AJAX查询时,它不需要点击按钮就可以更新数据库,但它什么都不做。是的,我通过回显检查了$_会话['id'],它工作正常如果你回显$_POST['content']
会发生什么?不幸的是,这里没有足够的信息来帮助您,因为您向我们展示的内容应该可以正常工作。我也尝试过,但仍然没有更新数据库。我仔细检查了密码和所有东西!jquery-3.1.1.slim.min.js如果您执行var\u dump($\u POST)
您会得到一个空数组?是的,我会得到一个空数组您能发布HTML吗?只有一个特克斯区?ajax是在您想要的时候执行的?可能是在文本区域中插入任何文本之前执行的。有什么链接可以让我们试试吗?代码似乎还可以。当然可以。你可以在这里看到这个项目的当前版本:是的,有一个文本区域!
<?php
session_start();
$link = mysqli_connect("localhost", "cl44-secretdr", "********", "cl44-secretdr");
if (mysqli_connect_error())
{
die ("Database Connection Error");
}
$id =$_SESSION['id'];
$content = $_POST['content'];
if (isset($content))
{
$query = "UPDATE users SET diary = '$content' WHERE id = {$id} ";
$result = mysqli_query($link, $query);
}
?>