Как автоматически обновить базу данных mysql с помощью javascript в html

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

Я использую 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);
}

попробуйте Ajax для асинхронных сценариев Java или поместите свой код во фрейм, чтобы он влиял только на этот фрейм при перезагрузке

ArKano 30.05.2018 14:49

Вы можете опубликовать свой PHP?

Jonny 30.05.2018 17:12

какими данными вы хотите обновить базу данных? чтобы мы могли захватить его и отправить через ajax на php для обработки?

Jonny 30.05.2018 17:21
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
566
1

Ответы 1

Вам нужно использовать 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");

}

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

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

Пример 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();
?>

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

Ваш php недействителен. Вы смешиваете два MYSQL API. Mysql_ * также устарел с php 5 и удален в php 7.

Lelio Faieta 30.05.2018 15:08

также, если вы используете mysqli_ *, используйте подготовленные операторы, чтобы избежать инъекций и не экранировать строки

Lelio Faieta 30.05.2018 15:09

Другие вопросы по теме