Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AJAX无法向PHP发送数据_Php_Jquery_Mysql_Ajax - Fatal编程技术网

AJAX无法向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,我正在尝试这样做,每当textarea发生变化时,AJAX都会将数据传递给php文件,php应该更新数据库

$("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); 
  }
?>