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