JavaScript-变量未重置
我的JavaScript有一些问题。该脚本使用Ajax GET从PHP页面检索内容。它根据名为JavaScript-变量未重置,javascript,php,jquery,Javascript,Php,Jquery,我的JavaScript有一些问题。该脚本使用Ajax GET从PHP页面检索内容。它根据名为count的变量获取内容 这段代码一直运行到数据库中的最后一项。当它从PHP页面获取no_data时:它应该重置计数器变量并从顶部重新开始,并在无限循环中继续。但是当我尝试用count=0重置变量时:什么也没发生。为什么呢 这是我的JS代码: var count = 0; var timer; $(window).load(function() { load_new_entry(); //
count
的变量获取内容
这段代码一直运行到数据库中的最后一项。当它从PHP页面获取no_data
时:它应该重置计数器
变量并从顶部重新开始,并在无限循环中继续。但是当我尝试用count=0重置变量时代码>:什么也没发生。为什么呢
这是我的JS代码:
var count = 0;
var timer;
$(window).load(function() {
load_new_entry();
// timer = window.setInterval(load_new_entry, 7500);
// window.clearTimeout(timer);
});
function load_new_entry() {
fade_out();
}
function fade_out() {
$(".container").fadeOut(1500, load_data);
window.clearTimeout(timer);
}
function fade_in() {
$(".container").fadeIn(1500);
timer = window.setInterval(load_new_entry, 7500);
}
function load_data() {
getDetails(count);
count++;
}
function getDetails(count) {
$.get("data.php?count="+count,function(data,status){
if (data != 'no_data') {
var jsonReturnData = $.parseJSON(data);
$(".container").html(jsonReturnData.content);
fade_in();
//console.log("Load details: " + count);
} else {
count = 1;
fade_in();
//console.log("Counter Reset: " + count);
}
});
}
<?php
mysql_connect("127.0.0.1", "root", "");
mysql_select_db("infoscreen");
function grab_data($count) {
$get_data = mysql_query("SELECT * FROM display ORDER BY `id` ASC LIMIT ".$count.",1");
while ($data = mysql_fetch_assoc($get_data)) {
$id = $data['id'];
$content = $data['content'];
$return_data = array('id' => $id, 'content' => $content);
//echo $return_data['content'];
echo json_encode($return_data);
}
}
if (isset($_GET['count'])) {
$count = $_GET['count'];
$utf_8 = mysql_query("SET CHARACTER SET utf8");
$data_exists = mysql_query("SELECT * FROM display ORDER BY id ASC");
if (mysql_num_rows($data_exists) > $count) {
// Next record is available
grab_data($count);
} else {
// Next record is not available
echo "no_data";
}
}
这是我的PHP:
var count = 0;
var timer;
$(window).load(function() {
load_new_entry();
// timer = window.setInterval(load_new_entry, 7500);
// window.clearTimeout(timer);
});
function load_new_entry() {
fade_out();
}
function fade_out() {
$(".container").fadeOut(1500, load_data);
window.clearTimeout(timer);
}
function fade_in() {
$(".container").fadeIn(1500);
timer = window.setInterval(load_new_entry, 7500);
}
function load_data() {
getDetails(count);
count++;
}
function getDetails(count) {
$.get("data.php?count="+count,function(data,status){
if (data != 'no_data') {
var jsonReturnData = $.parseJSON(data);
$(".container").html(jsonReturnData.content);
fade_in();
//console.log("Load details: " + count);
} else {
count = 1;
fade_in();
//console.log("Counter Reset: " + count);
}
});
}
<?php
mysql_connect("127.0.0.1", "root", "");
mysql_select_db("infoscreen");
function grab_data($count) {
$get_data = mysql_query("SELECT * FROM display ORDER BY `id` ASC LIMIT ".$count.",1");
while ($data = mysql_fetch_assoc($get_data)) {
$id = $data['id'];
$content = $data['content'];
$return_data = array('id' => $id, 'content' => $content);
//echo $return_data['content'];
echo json_encode($return_data);
}
}
if (isset($_GET['count'])) {
$count = $_GET['count'];
$utf_8 = mysql_query("SET CHARACTER SET utf8");
$data_exists = mysql_query("SELECT * FROM display ORDER BY id ASC");
if (mysql_num_rows($data_exists) > $count) {
// Next record is available
grab_data($count);
} else {
// Next record is not available
echo "no_data";
}
}
因为您已将参数定义为全局
。您不需要将其作为参数传递。当您使用相同的名称声明参数时。它将隐藏全局参数
因此,不要使用count
作为参数。i、 e将getDetails(count)
替换为getDetails()
不要使用count
作为参数。将getDetails(count)
替换为getDetails()!修好了!把它作为答案贴出来,我会接受的。所以你明白你的意思了。哦,我刚刚看到了,当他发布的时候,把他的答案标记为正确的…@DJZorrow,Glab,我可以帮你。