DIV перестает обновляться при создании новой записи в базе данных

0

(UPDATE) Таким образом, проблема не в записях базы данных или в автоматическом обновлении (вроде). Я сузил проблему до функции в моем index.php, которая определяет цвет отображаемой записи. Эта функция, кажется, не определена, когда автообновление перезагружает включенные страницы PHP.

Так что это очень неприятная проблема, которая нарушает всю цель моего веб-приложения. Я попытался устранить его и не могу понять, почему он отказывается работать. Мое единственное предположение: вызовы PHP/MySQL также не перезапускаются при обновлении, но это не может быть правдой, потому что когда я вызываю событие № 3, указанное ниже, оно исчезает просто отлично. Он просто не обновляется, когда запись существует.

Div ID "unitsAvail" отлично работает, даже когда создается или удаляется новая запись.

1) Восстанавливается отлично, если записей нет. 2) Остановка обновления при создании новой записи базы данных. 2b) Обновление страницы не устраняет автоматическое обновление. 3) Начинается повторное обновление, когда эта запись удаляется, независимо от того, была ли перезагружена страница.

Примечание. Обновляющие страницы php состоят из таблицы HTML и кода PHP для вызова запросов MySQL. Они не состоят из каких-либо дивизий или каких-либо других противоречащих друг другу вещей.

Примечание. 2: Я добавил эхо-метки времени для каждого div, и Active/pending действительно останавливают их автоматическое обновление при создании новых записей БД. Единицы Доступные продолжает прекрасно обновляться, и отметка времени обновляется.

(Я думаю, что было бы лучше просто поместить эти страницы PHP на эту страницу и обновить содержимое div вместо этого.Как бы я изменил автообновление, чтобы сделать это, если это лучший метод? Что я могу изменить.load( ) к?)

    <script src="java/jquery.js"></script>
    <script type="text/javascript">

    $(document).ready(function() {
        refreshActive();
    });

    function refreshActive() {
        $('#incActive').load('active.php', function() {
            setTimeout(refreshActive, 5000);
        });
        $('#incPending').load('pending.php', function() {
            setTimeout(refreshPending, 5000);
        });
        $('#unitsAvail').load('units.php', function() {
            setTimeout(refreshUnits, 5000);
        });
    }

    </script>
<body>
        <div id="fixed">

            <? include ("topmenu.php"); ?>

            <div id="backpanel">   

                <div id="incActive">
                    <?
                    include "active.php";
                    ?>
                </div>

                <div id="incPending">
                    <?
                    include "pending.php";
                    ?>
                </div>

                <div id="unitsAvail">
                    <?
                    include "units.php";
                    ?>
                </div>

            </div>

        </div>

</body>
Теги:

1 ответ

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

Это может быть вызвано тем, что метод загрузки генерирует исключение. Вы должны добавить некоторые ошибки, чтобы помочь в отладке проблемы.

Попробуйте использовать это, чтобы поймать любые ошибки:

$('#incActive').load('active.php', function( response, status, xhr ) {
    if ( status == "error" ) {
        var msg = "Sorry but there was an error: ";
        $( "#error" ).html( msg + xhr.status + " " + xhr.statusText );
    }
    else{
        setTimeout(refreshActive, 5000);
    }
);
  • 0
    Только что сделал тест, и он дает ошибки в div, где инцидент принадлежит. АКА, если юнит назначен и он активен, тогда АКТИВНЫЕ ошибки и ОЖИДАНИЕ в порядке. Если нет назначенных единиц, то все наоборот. Если инцидентов нет, оба работают. Если есть один инцидент с назначенной единицей и второй инцидент без назначенных единиц, активные ошибки, но ожидающие, работают нормально.
  • 0
    Обычно я предпочитаю использовать AJAX, а не метод load, но в данный момент вы вызываете setTimeout для каждого из методов загрузки, возможно, стоит просто удалить их и прикрепить только один setTimeout в конце функции refreshActive.
Показать ещё 2 комментария

Ещё вопросы

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