我想每隔几秒钟使用setInterval函数将数据从网站发布到我的数据库中。我没有收到任何错误消息,页面只是刷新,删除了所有输入的数据,但没有数据发布到数据库中
<body>
<div class="container">
<div class="row">
<form onclick="startPost()" method='POST' enctype='multipart/form-data'>
<textarea name="field1" id="field1"></textarea>
<input type="submit" id="post">
</form>
</div>
function startPost(){
setInterval(function(){
$("field1").load("post.php");
}, 4000)
}
});
post.php
<?php
include "connection.php";
$post1 = $connection->real_escape_string($_POST['field1']);
$insert = "INSERT INTO DBtable (WebText) VALUES ($post1)";
$resultinsert = $connection->query($insert);
if(!$resultinsert){
echo $connection->error;
}else{
echo "<p> Text is posting </p>";
}
?>
我希望每四秒将数据发布到数据库一次,但是页面在提交时会刷新。 connection.php连接到数据库
答案 0 :(得分:0)
HTML表单提交具有默认行为,可在提交结束时刷新。
<form onclick="startPost(event)" method='POST' enctype='multipart/form-data'>
将事件传递给上面的函数
function startPost(event){
event.preventDefault();
setInterval(function(){
$("field1").load("post.php");
}, 4000)
}
});
添加preventDefault以停止此默认行为。不同的浏览器有时会做出不同的反应,有时还必须执行event.stopPropagation()
,这也可以防止事件触发对其父元素的点击。在您的确切情况下不需要。
编辑:
要完全停止提交时重新加载,您需要在提交时捕获事件,如下所示:
<form onsubmit="preventReload(event)" method='POST' enctype='multipart/form-data'>
function preventReload(event) { event.preventDefault(); }