Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как реализовать обновление тега custom без перезагрузки?

Как реализовать обновление тега custom без перезагрузки?


     13.06.2017    Все вопросы » Общие вопросы    1126

вопрос
Добрый вечер.

Имеется:

...
{custom id="{include file="engine/modules/list.php"}"}
...


list.php
Пишет через запятую id новостей, которые "выбрал" пользователь. Чтобы "выбрать" новость нужно нажать кнопку "выбрать", данные по выбранным новостям для каждого пользователя хранятся в БД, но это не так важно.

Требуется:
При клике на кнопку, обновлять блок в котором содержится тег custom в реальном времени. ID - могут как добавляться, так и удалятся

Люди добрые подскажите, как сие чудо можно реализовать?

Ответа пока нет


11 комментариев

maks
Юзер

maks - 13 июня 2017 18:50 -


<script>
function custom_reload(area){
    ShowLoading();
    $.post(window.location.href,{},function(d){
        HideLoading();
        $("#"+area).html($("#"+area,d).html());
    });
    return false;
}
</script>

<a onclick="custom_reload('custom');return false;">Обновить</a>

<div id="custom"> 
...
{custom id="{include file="engine/modules/list.php"}"}
...
</div>

kprod
Юзер

kprod - 13 июня 2017 19:04 -

Идея понятна, но обновление не происходит

maks
Юзер

maks - 13 июня 2017 19:14 -

Скорей всего из-за кэша

kprod
Юзер

kprod - 13 июня 2017 19:17 -

Кеш в модуле отключал. Тут дело скорее в том, что селектор:
$("#"+area,d).html()

возвращает undefined

maks
Юзер

maks - 13 июня 2017 19:18 -

кэш в custom отключи

kprod
Юзер

kprod - 13 июня 2017 19:20 -

Не в кэше дело. Я пробовал без него, обычным текстом, всё равно не работало

maks
Юзер

maks - 13 июня 2017 19:33 -

Ну не знаю, этим методом можно обновить хоть весь dle-content и вроде как нужно одинарные кавычки поставить

{custom id="{include file='engine/modules/list.php'}"}

kprod
Юзер

kprod - 13 июня 2017 19:45 -

Почему $("#"+area,d).html() может возвращать undefined?

LazyDev
PHP-developer

LazyDev - 13 июня 2017 22:21 -

kprod,попробуйте вместо $.post использовать $.get

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

kprod
Юзер

kprod - 14 июня 2017 11:25 -

Разобрался, сделал так:
function reloadCart() {
    setTimeout(function () {
        $.post(window.location.href,{},function(d){
            var content = $('.reload', d).html();
            $('.reload').empty().prepend(content);
        });
    }, 500);
}

kprod
Юзер

kprod - 14 июня 2017 11:26 -

Не подскажите? После обновления, я не могу манипулировать содержимым обновлённого блока, как можно избавиться от проблемы?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх