Javascript 如何在不单击或提交的情况下实时更新数据

Javascript 如何在不单击或提交的情况下实时更新数据,javascript,jquery,ajax,Javascript,Jquery,Ajax,我需要更新表中的数据,而无需执行发送、单击或提交操作。例如,当我更改输入值时,我希望将这些更改实时保存到数据库中 我的问题是,如果表格有变化,我如何比较? 我读过这篇文章,但是在这里,这个函数每5秒执行一次,我只需要保存更改 HTML 一种非常简单的方法是: $(document).ready(function(){ setInterval(function(){ $('#content').load('data.php'); }, 5000); }); 基本上

我需要更新表中的数据,而无需执行发送、单击或提交操作。例如,当我更改输入值时,我希望将这些更改实时保存到数据库中

我的问题是,如果表格有变化,我如何比较? 我读过这篇文章,但是在这里,这个函数每5秒执行一次,我只需要保存更改

HTML


一种非常简单的方法是:

$(document).ready(function(){
    setInterval(function(){
        $('#content').load('data.php');
    }, 5000);
});
基本上,网页每5秒从特定的data.php脚本中提取一个请求,并相应地将其加载到内容元素中

在data.php页面上,您将有一个脚本,大致如下:

$result = mysqli_query($conn, "SELECT * FROM table WHERE something = 'something'");
while($row = mysqli_fetch_assoc($result)){
    $output = $row['yourrow'];
    echo $output . <br>;
}
在HTML的内部:

<div id="content">
 <!-- inside here is where the output code from the data.php
 page would be displayed. !-->
</div>

当然,您可以用您正在使用的元素的实际ID替换内容,同时根据您的需要定制所有其他代码。

一种非常简单的方法是:

$(document).ready(function(){
    setInterval(function(){
        $('#content').load('data.php');
    }, 5000);
});
基本上,网页每5秒从特定的data.php脚本中提取一个请求,并相应地将其加载到内容元素中

在data.php页面上,您将有一个脚本,大致如下:

$result = mysqli_query($conn, "SELECT * FROM table WHERE something = 'something'");
while($row = mysqli_fetch_assoc($result)){
    $output = $row['yourrow'];
    echo $output . <br>;
}
在HTML的内部:

<div id="content">
 <!-- inside here is where the output code from the data.php
 page would be displayed. !-->
</div>

当然,您可以将内容替换为您正在使用的元素的实际ID,并根据您的需要定制所有其他代码。

假设在字段失去焦点并且您使用文本字段时可以进行更新,您可以使用以下方法

$(document).on("blur", input, function() {
  var changedValue = $(this).val();
  // Store changedValue in database using Ajax
});

假设在字段失去焦点并使用文本字段时,就可以进行更新,则可以使用以下方法

$(document).on("blur", input, function() {
  var changedValue = $(this).val();
  // Store changedValue in database using Ajax
});

我是这样做的。我在击键时通过ajax发送数据。但我的超时时间是300毫秒,这样它就不会只在他们停止键入时才发送每一次击键

然后我在服务器端检查是否有更改,如果没有,我什么也不做,如果已经有一个条目我更新了,如果没有条目我插入了。简单

如果您在代码方面有问题,我可以提供一些

HTML:

PHP:


我希望这有帮助。

我这样做的方式是这样的。我在击键时通过ajax发送数据。但我的超时时间是300毫秒,这样它就不会只在他们停止键入时才发送每一次击键

然后我在服务器端检查是否有更改,如果没有,我什么也不做,如果已经有一个条目我更新了,如果没有条目我插入了。简单

如果您在代码方面有问题,我可以提供一些

HTML:

PHP:


我希望这能有所帮助。

您是要求体系结构还是代码?在UI上订阅更改事件,使用socket.io或更好地缩小您的问题范围并发布一些代码。将AJAX调用放入更改事件处理程序中。您可以将事件侦听器设置为keydown或keydup,然后在首选情况下发送请求。您是否需要体系结构或代码?在UI上订阅更改事件,使用socket.io或更好地缩小您的问题范围并发布一些代码。将AJAX调用放入更改事件处理程序。您可以在keydown或keyup上设置事件侦听器,然后在首选情况下发送请求。thx Caelan,但我需要它。我需要在更改输入或选择一个示例时,自动更新数据库中的数据。发送请求并需要ajax,我知道。我可以尝试发送只有形式上的更改…thx Caelan,但我需要这个。我需要在更改输入或选择一个示例时,自动更新数据库中的数据。发送请求并需要ajax,我知道。我可以尝试发送,但表单中有更改…Thx Chris。。。他正是我所需要的。你想让我开始做点什么吗?@HenriqueVanKlaveren我更新了一些答案code@HenriqueVanKlaveren我很高兴它帮助了克里斯。。。他正是我所需要的。你想让我开始做点什么吗?@HenriqueVanKlaveren我更新了一些答案code@HenriqueVanKlaveren我很高兴这有帮助
$key = $_POST['key']; //just remember never to just receive input from a user, first check if it is something valid and not something trying to hack you
$value = $_POST['value'];
//then check if there is a difference of value to what you had
//insert or update in your db accordingly
die(); //die if you are using a controller within a framework, if you do not it will send back all the other stuff with it