Обновление базы данных JQuery по клику - PullRequest
1 голос
/ 30 января 2009

У меня есть этот код в JQuery:

$().ready(function() {
{exp:weblog:entries weblog="locations" show_expired="yes" show_future_entries="yes" orderby="date" sort="desc" limit="5" rdf="off" disable="member_data|trackbacks" status="open|featured|ongoing"}
$('a.Favorites_Trigger_{entry_id}') .click (function() {
$.get(this.href, function(data) {
$('span.favoritesspan_{entry_id}').html(data);
$('dl.favoritesul > dd.entry_{entry_id}').replaceAll('dl.favoritesul > dd.entry_{entry_id}');
});
return false;
});

Что я пытаюсь сделать: при нажатии на ссылку она в настоящее время обновляет базу данных в основной части моей страницы (назовите ее widget.php), теперь widget.php также имеет боковую панель, на которой я хочу показать новые результаты запущенного события, которое только что произошло. Я нажимаю на ссылку, чтобы сказать, добавить или удалить это избранное. Это в основном «мой любимый» php-модуль, но я не могу получить обновленные результаты после того, как ссылка нажата, хотя изменение базы данных происходит, я вижу это после жесткого обновления браузера. Так можно ли обновить эту часть в стиле JQuery?


Спасибо за ответ Совют. Это на самом деле для модуля механизма выражений, и он вызывает функцию для добавления / удаления, щелкнув по файлу один, а во втором файле он добавляет или удаляет функцию. Боковая панель выводит результаты, я назову этот файл три. Спасибо, что заглянули.

Код ниже:

Файл первый:

{if logged_in}
{exp:favorites:saved entry_id="{entry_id}"}
{if saved}
<span class="favoritesspan_{entry_id}"><em>Saved as a favorite.</em>&nbsp;<a class="Favorites_Trigger_{entry_id}" href="{path='features/favorite-add/'}{entry_id}/delete">Remove from favorites list?</a></span>
{/if}
{if not_saved}
<span class="favoritesspan_{entry_id}"><a class="Favorites_Trigger_{entry_id}" href="{path='features/favorite-add/'}{entry_id}/add">Add this item to your favorites?</a></span>
{/if}
{/exp:favorites:saved}
{/if}  

Файл два: (процессор)

{exp:favorites:save weblog="funxyz"}

Файл 3:

    <dl class="favoritesul">
    {exp:favorites:entries weblog="funxyz" show_expired="yes" show_future_entries="yes" dynamic="off" status="open|featured|ongoing"}
<dd class="entry_{entry_id}">{title}</dd>
{/exp:favorites:entries}
    </dl>

1 Ответ

1 голос
/ 30 января 2009

Ваш идентификатор записи может работать не так, как вы ожидаете, поскольку используемые вами теги шаблонов отображаются на сервере перед отправкой клиенту. Это означает, что если вы просматриваете исходный код в браузере, ваш результирующий код JQuery будет иметь одно жестко закодированное значение вместо используемого тега {entry_id}. Это означает, что теоретически код JQuery работает только с самой первой или самой последней записью, в зависимости от того, как обрабатываются шаблоны.

Вам нужно, чтобы ваш код JQuery действовал более обобщенно. Просто обновите список из вашей базы данных, когда, скажем, нажмете что-нибудь под названием a.favourites_trigger.

Если вы можете опубликовать рабочий пример, это может упростить задачу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...