2014-09-27 4 views
-1

Я хочу показать, сколько людей на самом деле онлайн на моем сайте. Однако код ajax ничего не отображает в моем div, и я не уверен, почему это так.Почему не будет отображаться этот счетчик айакс?

<script type="text/javascript"> 
    $(document).ready(function() { 

    //START After 5 minutes update database timestamp (this part of script works) 
    fnShowImOnline(); 
    setInterval('fnShowImOnline', 120000); 

    function fnShowImOnline() { 
    $.get('counter_im_online.php'); 
    } 
    //END 
    { 
    $.ajax({url: 'counter_members_online.php', dataType: 'json', success: function(response) { 
    if (isNumeric(response.total)) { 
     $('#OnlineTotal').html(response.total + " Total "); 
     $('#OnlineNow').html(response.online + " Online Now"); 
    } 
    } 
}); 
</script> 

<div id="OnlineTotal"></div><div id="OnlineNow"></div> 

<?php 
// Contents of counter_members_online.php: 
// Members online. 
$online_sql = "SELECT COUNT(*) FROM users where last_checked_in > DATE_SUB(NOW(), INTERVAL 5 MINUTE)"; 
$online_RS = mysql_query($online_sql); 
$online_row = mysql_fetch_row($online_RS); 
$online  = $online_row[0]; 

// Members total. 
$total_sql = "SELECT COUNT(*) FROM users"; 
$total_RS = mysql_query($total_sql); 
$total_row = mysql_fetch_row($total_RS); 
$total  = $total_row[0]; 
$response = json_encode(array('total'=>$total,'online'=>$online)); 
echo($response); 
?> 
+0

Я предлагаю вам проанализировать http-трафик с помощью firebug. Затем опубликуйте результаты, которые будут полезны, чтобы отбросить, какая сторона (сервер или клиент) создает ошибку. –

ответ

0

не должен этот код

$.ajax({url: 'counter_members_online.php', dataType: 'json', success: function(response) { 
     if (isNumeric(response.total)) { 
      $('#OnlineTotal').html(response.total + " Total "); 
      $('#OnlineNow').html(response.online + " Online Now"); 
     } 
    } 
}); 

быть частью function fnShowImOnline()

т.е. function fnShowImOnline следует читать

function fnShowImOnline() { 
$.ajax({url: 'counter_members_online.php', dataType: 'json', success: function(response) { 
     if (isNumeric(response.total)) { 
      $('#OnlineTotal').html(response.total + " Total "); 
      $('#OnlineNow').html(response.online + " Online Now"); 
     } 
    } 
}); 
} 

можно попробовать заменить тег с:

<script type="text/javascript"> 
    $(document).ready(function() { 

    //START After 5 minutes update database timestamp (this part of script works) 
    fnShowImOnline(); 
    setInterval('fnShowImOnline', 120000); 
}); 

    function fnShowImOnline() { 
    $.ajax({url: 'counter_members_online.php', dataType: 'json', success: function(response) { 
      if (isNumeric(response.total)) { 
       $('#OnlineTotal').html(response.total + " Total "); 
       $('#OnlineNow').html(response.online + " Online Now"); 
      } 
     } 
    }); 
    } 

</script> 
+0

Я попытался удалить} // END {, чтобы он был частью этой функции, но он все равно не работает. –

+0

попробуйте сделать console.log (response); перед линией isNumeric() и см. ответ в firefox/chrome, а затем дайте нам знать, что вы там видите – Satya

+0

Хорошо, если я ударил f12 Я получаю: Uncaught TypeError: undefined не является функцией (индексом): 143 Uncaught SyntaxError: Неожиданный конец ввода (индекс): 1 Не удалось загрузить ресурс: net :: ERR_BLOCKED_BY_CLIENT –

0

Я понял проблемы. Следующий скрипт работает сейчас, у $ .ajax-части был a} перед ним, и он не работал:

<script type="text/javascript"> 
    $(document).ready(function() { 

    // After 5 minutes update database timestamp (this part of script works) 
    fnShowImOnline(); 
    setInterval('fnShowImOnline', 120000); 
}); 

    function fnShowImOnline() { 
    $.get('counter_im_online.php'); 
    } 

$.ajax({ 
    url: 'counter_members_online.php', 
    dataType: 'json', 
    success: function(response) { 
     if (!isNaN(response.total)) { 
      $('#OnlineTotal').html(response.total + " Total "); 
      $('#OnlineOnline').html(response.online + " Members Online"); 
     } 
    } 
}) 
</script> 
Смежные вопросы