@l0lkek

Как сделать вывод информации при нажатии на кнопку?

Доброго времени суток.
Только взялся за PHP и захотел реализовать данный механизм, суть которого состоит в том, что есть 3 блока. Допустим в первом блоке два элемента и если выбрать второй элемент, то во втором блоке выводится четыре элемента, а если выбрать первый элемент, то выводится два элемента во втором блоке. Такие же дела и со вторым блоком, в зависимости от того, что мы выберем выводится соответствующая информация в таблицу третьего блока. В голове вообще 0 идей как это реализовать, так что прошу вашей помощи. Реально ли реализовать такое только на PHP? Если это нельзя сделать только на PHP, то прошу сообщить что мне может для этого понадобиться. И возможно у кого-нибудь есть похожие примеры, то прошу тогда поделиться :). Заранее спасибо!
6193d176e6f83658252265.png
  • Вопрос задан
  • 1028 просмотров
Решения вопроса 1
Haotik
@Haotik
PHP мидл без фреймворков
Если все таки будете использовать JS то попробуйте ajax.

Если кратко при нажатии на кнопку аякс скрипт будет отправлять указанные вами данные на бэкэенд, где php обработчик подготовит нужные данные, например выберет нужные строки из БД. (там же лучше все сверстать сразу что бы потом через js не прописывать) и отправит их обратно пользователю и выведет в указанный вами блок.

Данный способ все таки более предпочтителен чем выкидывать на страницу все возможные варианты сразу и потом их фильтровать. (как размер самой страницы, так и возможно вывод каких то персональных, приватных данных в общем потоке)

Если же без использования JS
То.
1. выводим все данные на страницу с обязательным укзаанием ID блоков.
2. Кнопки делаем ссылками с указанием id связанного блока Кнопка
3. В CSS прописываем скрытие всех под элементов - display: none
4. В CSS используем псевдокласс :target {display:block;}

span{
    display: none;
}

span#element:target{
    display: block;
}


Логика
При нажатии на кнопку элемент с указанным в нем ID получает псевдо класс :target который можно использовать в css

Из недостатков - больше 1 элемента вы на такую цепочку не повесите. Т.е. если надо с "таргет" блока открыть какой то следующий, то следующий откроется, но для текущего слетит таргет и он снова будет не виден.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Php работает на сервере, и не знает куда там юзер нажимает в браузере.
Чтобы php узнал о кликах, это должны быть клики по ссылкам или кнопкам формы (ну или применить js, но выхотели чистый php).

Допустим, у вас страница с адресом /list.php,
Можете на ней добавить пару ссылок, в которые добавлен параметр, с указанием сколько показывать элементов
<a href="/list.php?count=2">показывать 2</a>
<a href="/list.php?count=4">показывать 4</a>


Теперь в пхп вы можете проверить этот параметр:

$cnt = filter_input(INPUT_GET, 'count', FILTER_SANITIZE_NUMBER_INT) 
   ?: 1;  // по умолчанию 1

  echo "показываем $cnt элементов" ;
Ответ написан
@jsnk
Программист
При формировании на php кода выдаешь все блоки с display=none, кроме тех которые нужно показать после загрузки. При выборе элемента устанавливаешь и сбрасываешь display как надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы