我制作一个代码,观众计数每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;
}
?>
有人可以帮忙吗?非常感谢!
答案 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);
});