JavaScript-变量未重置

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(); //

我的JavaScript有一些问题。该脚本使用Ajax GET从PHP页面检索内容。它根据名为
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,我可以帮你。