簡體   English   中英

使用setInterval定期向DB發布數據

[英]Using setInterval to post data periodically to DB

我想使用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連接到數據庫

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()這可以防止事件觸發onclicks到其父元素。 在您的確切情況下不需要。

編輯:

為了在提交時停止重新加載,您需要按如下方式捕獲事件onsubmit:

<form onsubmit="preventReload(event)" method='POST' enctype='multipart/form-data'>
function preventReload(event) { event.preventDefault(); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM