0

Hello i have this code server side to show online users:

header('Content-Type: application/json');
$array = array();
include 'db.php';
$res = mysqli_query($db, "SELECT * FROM `chatters` WHERE status = 1");//users are online
if(mysqli_num_rows($res) > 0){
    while($row = mysqli_fetch_assoc($res)){  
        $array[]= $row;        }
}
echo json_encode($array);

As response i get this:

[{"row_id":"40","name":"Krishan kumar","sex":"male","age":"24","country":"India","seen":"20:58:14", "status": "1"}]

So i on the show page i have this code to show the users:

 $(document).ready(function() {                               
 setInterval(function(){
  $.ajax({
       url: 'json.php',
       dataType: "json",
       type: 'GET',
       success: function(data) {
          if (data) {
            var len = data.length;
            var txt = "";
            for (var i = 0;i<len; i++) {
                txt += "<p>"+data[i].name + "</p>";
            }
            $(".showUsers").append(txt);
            console.log(txt);
          }

       }
    });
  }, 2000);
 });

But the problem is in every 2 second i get name printed like this:

Krishan kumar
Krishan kumar
Krishan kumar
Krishan kumar

and it continues.... I want to show the users name printed only one time while still opening the request with setinterval() to check if new users are online. How to fix this issue?

Pramod Karandikar
  • 5,289
  • 7
  • 43
  • 68
Saifullah Alam
  • 301
  • 2
  • 11

1 Answers1

0

Please clear previous user list before append new list. Use following code

 setInterval(function(){
 $(".showUsers").html('');
 $.ajax({ ....
Santi
  • 620
  • 8
  • 22