Задать вопрос
@Ruslan_K
Web Developer

Как реализовать действие «Отметить всех (снять отметки)» в большом списке с постраничной навигацией на PHP+MySQL?

Добрый день. Есть необходимость работать со списком подписчиков, списки могут достигать нескольких тысяч и десятков тысяч строк (реже, но могут). Естественно, такой объем вывести сразу в браузер, мягко говоря неразумно. Поэтому логично использовать постраничный вывод.
Загвоздка заключается в следующем, необходимо чтобы у пользователя была возможность выбрать всех в списке или убрать всех из списка, но не просто отметить всех, а еще потом погулять по списку и выкинуть или добавить кого-то по своему желанию. Хотелось бы найти наиболее простое решение этой задачи. Пока вижу только путь в лоб, писать id подписчиков в js-массив и отправлять на сервер, но массив может получиться совсем не маленький.
  • Вопрос задан
  • 185 просмотров
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@Arik
Чтоб сделать массив необязательно через JS, намного проще через
<input type="checkbox" name="delete_ids[]" value="<=$model-id?>" />

Тогда отправив форму вы получите массив из id которые были выбраны.
Это все отправляете разумеется методом POST, а там хватит, чтоб отработать список ID с одной страницы, которую смог прочитать человек. Ну и MySQL отдаем IN('. implode(', ', $deleteIds) .')

А вот чтоб выбрать все или отменить уже используете JS, там уже просто находите все чекбоксы и указывается checked
Ответ написан
Комментировать
@Ruslan_K Автор вопроса
Web Developer
с оптимизацией понятно, раньше времени смысла нет ей заниматься.
делал подобное, так как менять запрос к базе был недоступен, т.е. все работы только на клиенте)) массив из 5000 строк, где только айдишки поверьте капля в море!!

сейчас подобное решение работает, но думал может быть есть другой способ.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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