Скрытие / отображение нескольких элементов div в соответствии с выборкой данных из базы данных

Вот мой PHP-код, который извлекает результаты из нескольких строк из базы данных.

<p id = "show-desc">
<?php  echo $db_description = $row['description']; ?>  </p> 

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

     <script>
    $(document).ready(function(){
     $("#show-desc").hide();
     $("#show-details").click(function(){
         $("#show-desc").show();
});
});
</script>

Теперь он отлично работает там, где есть только одна выборка строки из базы данных. Но это не работает, когда есть несколько строк. Он скрывает только первую строку, а остальные видны.

разве вы не пробовали реализовать классы вместо идентификаторов?

Kevin 22.06.2018 11:45

Идентификатор абзаца тоже повторяется ?? или только содержание параграфа увеличивают?

Shubh 22.06.2018 11:46

«Вот мой PHP-код, который извлекает результаты из нескольких строк из базы данных.» ... PHP, который вы показали, будет печатать только одно поле. Пожалуйста, покажите это в контексте. Если вы используете цикл для повторения этого вывода в PHP, тогда у вас есть проблема, потому что он создаст много элементов HTML с одним и тем же идентификатором - это недопустимо, браузер не может отличить их друг от друга, поэтому он не может знать, какой из них отображать и Спрятать

ADyson 22.06.2018 11:47

Похоже, вы дублируете атрибуты id, что является недопустимым HTML. Вместо этого используйте классы и просматривайте DOM, чтобы найти элементы, связанные с тем, который вызвал событие. Если вам нужен пример этого, отредактируйте свой вопрос, включив в него более полный образец HTML.

Rory McCrossan 22.06.2018 11:48

Используйте класс вместо идентификатора для тегов <p>

Shridhar Sharma 22.06.2018 11:50

да, я тоже пробовал класс. но он показывает несколько кнопок, а не содержимое в нем. Когда нажимаю на кнопку, ничего не происходит.

Screech 22.06.2018 11:55

"он показывает несколько кнопок, а не содержимое в нем" ... Я понятия не имею, что вы сделали, чтобы это произошло, но я не думаю, что это то, что здесь предлагали. Пожалуйста, покажите HTML в контексте должным образом, как требуется, а также покажите, как вы создаете свою кнопку «показать детали». Я предполагаю, что в конечном итоге будет одна кнопка на абзац?

ADyson 22.06.2018 12:27
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
7
43
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте следующее:

<p class = "show-desc"> </p> 
<script>
$(document).ready(function(){
     $(".show-desc").hide();
     $(".show-details").click(function(){
          $(this).show(); //
     });
});
</script>

Что такое $(".show-details") в этом коде? Мы не знаем из кода OP, но это определенно не тот же элемент, что и скрытый абзац. Скорее всего, это кнопка. Поэтому ваш код просто сделает кнопку видимой ... но если пользователь нажал на нее, кнопка уже видна ... и в любом случае это не то, что нужно. Согласно моему последнему комментарию по основному вопросу, у нас недостаточно информации для полного решения проблемы.

ADyson 22.06.2018 17:12

Другие вопросы по теме