Как скрыть элемент, если он не заполнен?

Ссылка скопирована
PHP
1 ответ

Здравствуйте! Как скрывать элемент, если он не заполнен и показывать, если заполнен?

<?php if (!empty($row)) { ?> <li class="size">Размер <?php echo $row['attr-size']; ?>мм</li>  <script> $(".size").hide(); </script> <?php } ?>

<?php if (!empty($row)) { ?> <li class="size">Размер <?php echo $row['attr-size']; ?>мм</li> <script> $(".size").hide(); </script> <?php } ?>

Пробую так, но элемент скрывается даже, если attr-size заполнен

Дополнительно:

Добавить стиль для скрытия элемента.

<li class="size" style="display: <?= empty($row['attr-size']) ? 'none' : 'block'; ?>">Размер <?php echo $row['attr-size']; ?>мм</li>

<li class="size" style="display: <?= empty($row['attr-size']) ? 'none' : 'block'; ?>">Размер <?php echo $row['attr-size']; ?>мм</li>

  • Александр оно скрывает даже, если размер заполнен
  • Александр Коновалов, Исправил код. А так?
  • Александр,
    <li class="size" style="display: <?= empty($row['attr-size']) ? 'none' : 'block'; ?>">Размер <?php echo $row['attr-size']; ?>мм</li>

    <li class="size" style="display: <?= empty($row['attr-size']) ? 'none' : 'block'; ?>">Размер <?php echo $row['attr-size']; ?>мм</li>

    вот так заработало

  • Александр, спасибо!

Почему бы не попробовать в условие проверки добавить то, что реально по вашей логике влияет на отображение? Вы говорите «даже если attr-size заполнен», так почему в условии у вас это не проверяется?

  • <?php if (!empty($row['attr-size'])) { ?>  <li>Размер <?php echo $row['attr-size']; ?>мм</li>   <li>Назначение <?php echo $row['attr-coating']; ?></li> <?php } else {?> <li>Назначение <?php echo $row['attr-coating']; ?></li>  <? }?>

    <?php if (!empty($row['attr-size'])) { ?> <li>Размер <?php echo $row['attr-size']; ?>мм</li> <li>Назначение <?php echo $row['attr-coating']; ?></li> <?php } else {?> <li>Назначение <?php echo $row['attr-coating']; ?></li> <? }?>

    А если нужно скрывать сразу несколько атрибутов, как это упростить?

  • Да никак особо. Ну можно цикл по их названиям сделать, чтобы код не дублировать, но кардинально это ничего не изменит.
    Конкретно в вашем куске кода «назначение» можно вообще вынести из условия и убрать else — раз в обеих ветках выводится одинаково.
  • Алексей Уколов, да это понятно, но оно тоже может быть пустым, придется городить
  • Александр Коновалов, Я не рекомендую вам в шаблонах, которые выводят html, придумывать какие-то хитрые конструкции и что-то "упрощать". В файлах, где выводится html всё должно быть максимально читаемо, и тут должно быть как можно меньше запутанного кода.
    Кстати, советую вам использовать альтернативный синтаксис PHP для html-кода без фигурных скобок. Например:
    <?php if (!empty($row['attr-size'])) : ?>  <li>Размер <?php echo $row['attr-size']; ?>мм</li>   <li>Назначение <?php echo $row['attr-coating']; ?></li> <?php else :?> <li>Назначение <?php echo $row['attr-coating']; ?></li>  <? endif;?>

    <?php if (!empty($row['attr-size'])) : ?> <li>Размер <?php echo $row['attr-size']; ?>мм</li> <li>Назначение <?php echo $row['attr-coating']; ?></li> <?php else :?> <li>Назначение <?php echo $row['attr-coating']; ?></li> <? endif;?>

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ирина WP Ответ

Для скрытия элемента на веб-странице, если он не заполнен, можно воспользоваться условием проверки содержимого этого элемента. В зависимости от того, какой тип элемента вы хотите скрыть (например, блок div, input или другой), можно использовать различные методы проверки.

Для примера рассмотрим случай, когда мы хотим скрыть блок div, если он не содержит никакого текста или другого содержимого. В данном случае мы можем использовать JavaScript для проверки содержимого и установки стиля display: none для скрытия элемента.

Пример кода на JavaScript:

 
  // Получаем элемент div по его id
  var element = document.getElementById('myDiv');
 
  // Проверяем, содержит ли элемент текст или другое содержимое
  if (element.innerHTML.trim() === '') {
    // Если элемент пустой, скрываем его
    element.style.display = 'none';
  }

// Получаем элемент div по его id var element = document.getElementById('myDiv'); // Проверяем, содержит ли элемент текст или другое содержимое if (element.innerHTML.trim() === '') { // Если элемент пустой, скрываем его element.style.display = 'none'; }

В данном примере мы проверяем содержимое элемента с id "myDiv" и, если оно пустое (не содержит текста или другого содержимого), то скрываем этот элемент, устанавливая стиль display: none.

Этот подход можно адаптировать под различные типы элементов и условия скрытия. Например, для input элементов можно использовать проверку значения или атрибута, а для других типов элементов - соответствующие свойства и методы JavaScript.

Надеюсь, данное объяснение поможет вам решить задачу по скрытию элемента на веб-странице, если он не заполнен. Если у вас возникнут дополнительные вопросы или потребуется более детальное объяснение, не стесняйтесь задавать их.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно