JavaScript - переменная не сбрасывается

0

У меня проблемы с моим JavaScript. Этот скрипт использует Ajax GET для извлечения содержимого с PHP-страницы. И он получает контент в зависимости от переменной, называемой count.

Этот код работает до тех пор, пока он не попадет в последний элемент моей базы данных. Когда он получает no_data со страницы PHP: он должен сбросить переменную counter и начать с вершины и продолжить в бесконечном цикле. Но когда я пытаюсь сбросить переменную с 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:

<?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";
    }
}
  • 1
    Не используйте count качестве параметра. Замените getDetails(count) на getDetails()
  • 0
    @Satpal Satpal О, глупый я! Починил это! Отправьте это как ответ, и я приму это. Таким образом, вы получаете свои очки
Показать ещё 2 комментария
Теги:

1 ответ

1
Лучший ответ

Поскольку вы определили параметр Global. Вам не нужно передавать его в качестве параметра. Когда вы объявляете параметр с тем же именем. Он скроет глобальный параметр.

Таким образом, не используйте count как параметр. т.е. заменить getDetails(count) на getDetails()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню