Выбрать и обновить данные, используя ajax - PullRequest
0 голосов
/ 28 апреля 2020

Я хочу обновить столбец в моей таблице и получить эти данные в режиме реального времени. Это мой код.

<html>
<body>
<div id="output"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js">  
</script>
<script id="source" language="javascript" type="text/javascript">
var change = function(){
$.ajax({ 
  type: "POST",                                   
  url: 'update.php',                          
  data: "",                        
  success: function(data) 
  {
    $("#msg").html("Succes");
  } 
});
}
$.ajax({                                      
  url: 'api.php',                  
  data: "",                        
  dataType: 'json',             
  success: function(data)          
  {
    var id = data[0];              
    var vname = data[1]; 
    var user = data[2];         
    $('#output').html("<b>id: </b>"+id+"<b> name: </b>"+vname+"<b>user: </b>"+user); 
  } 
});
  </script>
  <button id="submit" onclick="change();">
    Update
  </button>
  <span id="msg">msg</span>
  </body>
</html>

Это API. php

<?php 
    $db_host = "localhost";
    $db_username = "root"; 
    $db_pass = ""; 
    $db_name = "youtube";
    $myConnection= mysqli_connect("$db_host","$db_username","$db_pass", "$db_name") or die ("could not 
connect to mysql");
    $sql = "SELECT * FROM variables";
    $result1 = mysqli_query($myConnection,$sql);         
    $array = mysqli_fetch_row($result1);                      
    echo json_encode($array);
?>

И это обновление. php

<?php
    $db_host = "localhost";
    $db_username = "root"; 
    $db_pass = ""; 
    $db_name = "youtube";
    $myConnection= mysqli_connect("$db_host","$db_username","$db_pass", "$db_name") or die ("could not connect to mysql"); 
    $update = "UPDATE variables set newuser=0";
    $result = mysqli_query($myConnection,$update);
?>

Моя таблица имеет три столбца идентификатор, имя и новый пользователь. Значение по умолчанию для нового пользователя - 1. Каждый раз, когда я нажимаю кнопку, она меняется на 0 и обновляется в базе данных. Но что я должен сделать, чтобы отобразить это обновленное значение в столбце newuser на моей странице html после нажатия кнопки? Мне нужно обновить и получить эти данные в режиме реального времени. Может ли кто-нибудь помочь мне? Заранее спасибо :)

1 Ответ

0 голосов
/ 28 апреля 2020
As per your functionality update has to happen first then retrieving of the data. Your code first calls the update, it acts as asynchronous and by the time it updates and return  the next ajax request response might come and your value of newuser can be still 1. Try changing your code in the below way.
var change = function(){
$.ajax({ 
  type: "POST",                                   
  url: 'update.php',                          
  data: "",                        
  success: function(data) 
  {
    $("#msg").html("Succes");
    // Retrive the data 
                $.ajax({                                      
              url: 'api.php',                  
              data: "",                        
              dataType: 'json',             
              success: function(data)          
              {
                var id = data[0];              
                var vname = data[1]; 
                var user = data[2];         
                $('#output').html("<b>id: </b>"+id+"<b> name: </b>"+vname+"<b>user: </b>"+user); 
              } `enter code here`
            });
  } 
});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...