无法读取属性'load'的null

时间:2014-05-10 08:06:19

标签: javascript php jquery sql ajax

我制作一个代码,观众计数每10秒自动刷新一次。问题是,没有任何输出,并且在控制台上,它说无法读取属性' load'为null

我使用它作为我的代码:

<script type="text/javascript">
var auto_refresh = setInterval(
function ()
{
$('#viewers').load('ajax.php?request=viewers&id=19').fadeIn("slow");
}, 10000); // refresh every 10000 milliseconds
</script>

PHP

<?php
define('IN_MYBB', 1); require "./global.php";
require_once MYBB_ROOT."/inc/class_parser.php"; 


switch ($_GET['request']) {

 case 'viewers':
$urlid = $db->escape_string($_GET['id']); // never trust any user inpit
$result = $db->query("SELECT * FROM ****_streams WHERE id='$urlid'");
$row = $db->fetch_array($result);
    echo "Viewers: ".$row['viewers'];
 break;

 case 'contact':

 break;

 default:

 break;

}
?>

有人可以帮忙吗?非常感谢!

http://1shotgg.com/watchstream.php?id=19

5 个答案:

答案 0 :(得分:3)

看起来$('#viewers')调用返回null。这对于jQuery来说并不正常,因为在每种情况下它都会返回一个对象,即使它不包含任何匹配元素。 出于这个原因,我怀疑你可能在加载jQuery时遇到问题。它可能与$符号冲突,由jQuery以外的某些脚本处理,所以请尝试使用:

jQuery('#viewers').load(/*....*/)

如果这样做也不起作用,那么可能是jQuery甚至没有加载到你的页面上,所以检查你的脚本引用。

答案 1 :(得分:2)

只是猜测 - 很有可能你的脚本在加载DOM之前执行 - 因为你使用的是Jquery - 你可以这样做 -

$(document).ready(function(){

var auto_refresh = setInterval(
function ()
{
$('#viewers').load('ajax.php?request=viewers&id=19').fadeIn("slow");
}, 10000); 

});

答案 2 :(得分:1)

未经测试,但您可以尝试更改此内容:

$('#viewers').load('ajax.php?request=viewers&id=19').fadeIn("slow");

用这个:

$.ajax({
   url: 'ajax.php',
   type : 'get',
   data : { request : viewers, id : 19},
   success: function(data){
      $('#viewers').hide().html(data).fadeIn('slow')
   },
   error: function(xhr){
       console.log(xhr.responseText);
   }
});

答案 3 :(得分:1)

我已尝试在本地运行此功能。它对我来说非常好

创建一个单独的php文件并检查它!

text.php

<?php

if(isset($_GET['request'])){
    echo "Hello from load";
}else{
    ?>
<html>
<head>
<script src="jquery.js"></script> <!-- replace with ur jquery -->
<script type="text/javascript">
$(function(){

setInterval(
function ()
{
$('#output').load('text.php?request=viewers&id=19').fadeIn("slow");
}, 10000); 

});

</script>
</head>
<body>
<h2>Content</h2>
<div id='output'>
</div>
</body></html>
<?php } ?> 

答案 4 :(得分:0)

ID为“查看者”的元素尚不存在。将<script>移至文档末尾或将其替换为

$(document).ready(function() {
    var auto_refresh = setInterval(
    function ()
    {
         $('#viewers').load('ajax.php?request=viewers&id=19').fadeIn("slow");
    }, 10000);
});