Изменить статус с помощью Javascript в MySQL - PullRequest
0 голосов
/ 06 мая 2020

Мне нужна твоя помощь. У меня есть сценарий аукциона. Я написал две функции в коде javascript. Таким образом, производится два подсчета в зависимости от начала и окончания аукциона. Я хочу, чтобы он был «arac_durum» -> «Aktif» в моей базе данных, когда завершился первый подсчет, и «arac_durum» -> «Pasif», когда завершился второй подсчет. Как я могу это сделать, поможете?

<script>

function createCountDown(elementId, date, dateiki) {

    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 = "Süre ►" + days + ": " + hours + ": " + minutes + ": " + seconds;
    

    if (distance < 0) {
        clearInterval(x);

        document.getElementById(elementId).innerHTML = "Started !";
        // Here I want the "arac_durum" item to be "Aktif".
        

        
        
        var bitistarihi = new Date(dateiki).getTime();
        var y = setInterval(function() {
            var simdi = new Date().getTime();
            var distance = bitistarihi - simdi;
            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 = "Süre ►" + days + ": " + hours + ": " + minutes + ": " + seconds;
            if (distance < 0) {
                clearInterval(y);

                document.getElementById(elementId).innerHTML = "Finish !";
                // Here I want the "arac_durum" item to be "Pasif".
                
                }
        }, 1000);
                
        
    }
}, 1000);

}

createCountDown("<?=$araccek['arac_id']?>", "<?=$araccek['arac_gerisayim']?>", "<?=$araccek['arac_tarih']?>")
  



</script> 
 <p id="<?=$araccek['arac_id']?>"></p>

enter image description here

enter image description here

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Во-первых: вам нужен код на стороне сервера для получения флага, если флаг 1 активен, обновление, в противном случае обновите pasif, давайте создадим PHP файл и назовем его - изменим. php:

<?php
      $flag = $_POST['flag'];
      $id = 1; //You have to receive the value of the id from the client. I mean to passed with the ajax request.
      $dsn = "mysql:host=localhost;dbname=yourdatabase";
      $pdo = new PDO($dsn, 'dbuser', 'userpassword');
       if( $flag == 1)
                $value = "active";
        else
                 $value = "passif";

         $stm = $pdo->prepare("Update yourTableName set arac_durum=? WHERE keyfield = ?");
         $stm->bindValue(1, $value);
         $stm->bindValue(2, $id);
    if( $stm->execute())
       echo "updated successfuly";
     else
        echo "error";

?>

Второй: используйте Jquery, чтобы написать код AJAX в вашем разделе javascript, чтобы отправить статус от клиента на сервер.

Вы собираетесь заменить этот комментарий кодом ajax // Здесь я хочу, чтобы элемент «arac_durum» был «Pasif».

Давайте сделаем это:

$.ajax({
           Type:'POST',
            url:'modify.php',
            data:{flag:2},
             success:function(response)
             {
                 // do sth here like alert a msg
                   alert(response);
             }
      });

Вышеупомянутого решения достаточно, чтобы исправить ваш проблема, но если вы не знакомы с jquery, вы можете использовать (fetch) appi для отправки данных с клиента на сервер.

 fetch('modify.php?flag=2')
         .then(reponse=>response.text())
         .then(data=>alert(data));

При изменении. php используйте флаг $ _GET [' '] вместо $ _POST [' flag '], потому что я добавил параметр в URL-адрес страницы. Остальной код останется без изменений.

Вы также можете использовать объект XMLHttpRequest для передачи данных между браузером и сервером.

0 голосов
/ 09 мая 2020

Php и Js Код;

<p id="<?=$araccek['arac_id']?>"></p>


<script>

function createCountDown(elementId, date, dateiki, durum) {

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

var x = setInterval(function() {

    // Sistem saatini alıyoruz
    var now = new Date().getTime();
    
    // Geri sayımla şimdi saat arasındaki zamanı ölçüyoruz
    var distance = countDownDate - now;

    
    // Gün, Saat, Dakika, Saniye işlemleri yapılıyor
    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);
    
    // Anlık olarak id="gerisayim" içine aktarılıyor
    document.getElementById(elementId).innerHTML = "Süre ►" + days + ": " + hours + ": " + minutes + ": " + seconds;
    
    
    
    
    // Süre dolduğunda yazacak yazı.
    if (distance < 0) {
        clearInterval(x);

        document.getElementById(elementId).innerHTML = "Başladı !";
        
        $.ajax({
           Type:'POST',
            url:'modify.php',
            data:{durum:2},
             success:function(response)
             {
                 // do sth here like alert a msg
                   alert(response);
             }
      });


        
        
        var bitistarihi = new Date(dateiki).getTime();
        var y = setInterval(function() {
            var simdi = new Date().getTime();
            var distance = bitistarihi - simdi;
            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 = "Süre ►" + days + ": " + hours + ": " + minutes + ": " + seconds;
            if (distance < 0) {
                clearInterval(y);

                document.getElementById(elementId).innerHTML = "Bitti !";
                
                $.ajax({
           Type:'POST',
            url:'modify.php',
            data:{durum:1},
             success:function(response)
             {
                 // do sth here like alert a msg
                   alert(response);
             }
      });
                
                }
        }, 1000);
                
        
    }
}, 1000);

}

createCountDown("<?=$araccek['arac_id']?>", "<?=$araccek['arac_gerisayim']?>", "<?=$araccek['arac_tarih']?>", "<?=$araccek['arac_durum']?>")
  



</script> 

Modify.php;

<?php
      $flag = $_POST['durum'];
      $id = 1; //You have to receive the value of the id from the client. I mean to passed with the ajax request.
      $dsn = "mysql:host=localhost;dbname=sametsarihan_db";
      $pdo = new PDO($dsn, 'sametsarihan_db', '********');
       if( $flag == 1)
                $value = "Aktif";
        else
                 $value = "Pasif";

         $stm = $pdo->prepare("Update araclar set arac_durum=? WHERE arac_id = ?");
         $stm->bindValue(1, $value);
         $stm->bindValue(2, $id);
    if( $stm->execute())
       echo "updated successfuly";
     else
        echo "error";
        
        ?>

Моя таблица базы данных:

https://hizliresim.com/9J87vg

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