Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965

Один AJAX для нескольких контейнеров

07.11.2015, 05:43. Показов 886. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
На сайте делаю, что то типа лайкой на AJAX, можно проголосовать за статью (за или против), ещё хочу сделать голосование комментариев к статье (так же за или против). Набросал такой код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript">
function like(mode, subject, id, author)
{
    $.ajax({
        type:'get',
        url: 'like.php',
        data:{'mode':mode, 'subject':subject, 'id':id, 'author':author},
        success: function(data) 
        {
            $('#like').html(data);
        }
    });
}
</script>
Четыре параметра в запросе:
mode - определяется на что нажал пользователь (за или против).
subject - определяется за что пользователь голосует (за статью или коммент).
id - id предмета, то есть id статьи или коммента, в зависимости за что голосуют.
author - id автора статьи или коммента (для рейтинга пользователя).
С этим разобрался...

Разобраться не могу с контейнером, то есть с местом, где обновляется счетчик рейтинга:
JavaScript
1
            $('#like').html(data);
HTML5
1
<div id="like"></div>
Получается контейнер один, а надо для каждого предмета (статьи и комментов), но при этом, что бы код ajax запроса оставался один. В общем, подскажите, как можно сделать, что бы к контейнеру присваивался, например id:
HTML5
1
<div id="like (тут id предмета)"></div>
И конечно с самим запросом тоже:
JavaScript
1
            $('#like').html(data);
Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.11.2015, 05:43
Ответы с готовыми решениями:

Animation() для нескольких контейнеров с изменением их собственной позиции
Всем привет! Мне интересно возможно ли этот пример сделать более компактным? pos1 = parseInt($('#div1').css('left')); pos2 =...

Распаковка нескольких контейнеров в одну папку
Ребята, требуется помощь... Имеется несколько контейнеров в формате *.pkg в одной папке, это не кумулятивные обновления игр: ...

Слить много контейнеров в один
здравствуйте, подскажите, что не так в коде, ибо не совсем правильно работает (мозг сносит уже от подобного) : void...

2
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
07.11.2015, 07:23
Raisin Zn, события в JavaScript бегут от корня документа до целевого элемента и обратно, по пути вызывая их обработчики. Этот фокус можно использовать для решения задачи. Например я хочу узнать id элемента на котором выполнен клик мышкой(очень условно, почти псевдокод):
JavaScript
1
2
3
4
var rootElement = document.documentElement; // корень документа
rootElement.addEventListener('click', function(event){
    console.log(event.target.id); // элемент на котором произошло событие
}, false); // третий параметр(значение false) указывает, что ловим только bubbling state, capturing пропускаем
0
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
07.11.2015, 08:44  [ТС]
Я думаю это можно сделать, как то так, в строку:
JavaScript
1
            $('#like').html(data);
к #like добавить переменные subject и id. А контейнеры будут иметь такой вид:
HTML5
1
2
3
<div id="like_blog_23"></div>
<div id="like_comment_4567"></div>
<div id="like_comment_4568"></div>
или без like:
HTML5
1
2
3
<div id="blog_23"></div>
<div id="comment_4567"></div>
<div id="comment_4568"></div>
То есть id="" блока будет зависеть от голосуемого предмета и его id.
Как это применить кодом я не представляю... В JS я балбес...

Добавлено через 11 минут
Сам ответил на свой вопрос...
Просто надо сделать так:
JavaScript
1
            $('#like_' + subject + '_' + id).html(data);
HTML5
1
<div id="like_blog_{echo $report['article_id']}">{echo $report['article_plus']} | {echo $report['article_minus']}</div>
Только из-за нехватки знаний не знал, как это сделать, а оказалось всё просто!
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.11.2015, 08:44
Помогаю со студенческими работами здесь

Каким способом сделать самоудаление обьекта из нескольких контейнеров?
Какой способ наиболее эфективный, что бы обьект мог удалить указатели на самого себя из нескольких контейнеров? Есть некий класс и...

Ajax запрос для нескольких значений параметра
Ребят, сейчас данная форма выводит результат расчета параметров доставки. А как вывести на странице после нажатия кнопки...

Один *.h для нескольких *.cpp
В файле global.h объявлены структуры и переменные, которые используются в 2-ух cpp файлах: main.cpp и interface.cpp. global.h : ...

Один обработчик для нескольких PictureBox
Всем доброго времени суток. Есть много пикчер боксов около 16 штук, и на каждый нужно привязать клик. И что бы не писать в куче...

Один обработчик для нескольких switch
Привет. Делаю приложение для управления устройством на ардуино по блютуз. Кое как разобрался как заставить работать switch, но у меня на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru