Как автоматически обновить базу данных MySQL, используя JavaScript в HTML - PullRequest
0 голосов
/ 30 мая 2018

Я хочу автоматически обновить свою базу данных, когда отсчет времени равен == 0 или <0, без перезагрузки страницы.Только определенный блок будет перезагрузить или перезагрузить скрипт / код.Как я могу автоматически обновить свою базу данных в MySQL, когда расстояние <0?Я пытаюсь перезагрузить ();и .load (location.href ("#"));Но они перезагрузили страницу.</p>

Я использую PHP в качестве бэкэнда

В JAVASCRIPT

<script type="text/javascript">     
    function createCountDown(elementId, date) {

    var countDownDate = new Date(date).getTime();

    var x = setInterval(function() {

      var now = new Date().getTime();

      var distance = countDownDate - now;

      var days = Math.floor(distance / (1000 * 60 * 60 * 24));
      var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
      var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
      var seconds = Math.floor((distance % (1000 * 60)) / 1000);

      document.getElementById(elementId).innerHTML = days + 'd ' +
                                                     hours + 'h ' +
                                                     minutes + 'm ' + 
                                                     seconds + 's ';

      if (distance < 0) {
        clearInterval(x);
        document.getElementById(elementId).innerHTML = "Expired";
      }
    }, 1000);
}

1 Ответ

0 голосов
/ 30 мая 2018

Вам необходимо использовать AJAX.

Пример:

xhttp.open("POST", "path/to/post/handler.php", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("fname=Henry&lname=Ford");

В вашем случае:

if (distance < 0) {
    clearInterval(x);
    document.getElementById(elementId).innerHTML = "Expired";
    //this is where you update the database:
    xhttp.open("POST", "path/to/post/handler.php", true);
    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    //use the xhttp object to send(POST) values to the database.
    xhttp.send("message=Expired&id=242");

}

Подробнее здесь

Что вы используете в бэкэнде?Вам нужно будет обработать JavaScript POST:

Пример PHP будет:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";



// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 


$stmt = $this->mysqli->prepare("UPDATE yourTable SET status=? WHERE id=?");
$stmt->bind_param('si', $_POST['message'], $_POST['id']);
$stmt->execute();
return $stmt->affected_rows;
$conn->close();
?>

Дайте мне знать в комментариях, если это работает ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...