JavaScript — Скрыть и Показать в зависимости от значения

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

Вот что я сделал, но это не работает:

<script>
var a = <?php echo $row["status"]; ?>
if(a == 'To be check' || a == 'Endorsed By IT') {
$("#new").show();
} else
$("#new").hide();
</script>

Вот что под #new:

<div id="new">
<select name="status">
<option value="Request">Request</option>
<option value="Upload">Upload</option>
</select>
</div>

0

Решение

По твоей проблеме у b0s3 есть ответ. Кроме того, я бы порекомендовал другой способ решения этой проблемы:

Пробовать изменить разметку HTML при рендеринге вместо изменения вашего JavaScript:

<div id="new" <?print ( in_array($row["status"], array('To be check', 'Endorsed By IT')) ? 'class="active"' : ''); ?>
[…]
</div>

Вы можете использовать класс CSS, например:

#new { display: none; }
#new.active { display: block; }

Вы все еще можете изменить видимость позже, используя:

document.getElementById('new').classList.toggle('active'); // vanilla JS
$('#new').toggleClass('active'); // jQuery

Преимущества:

  • Элемент скрыт сразу и не будет виден пользователю, если ваша страница загружается медленно (по какой-либо причине).
  • Код JavaScript можно хранить и поддерживать отдельно от вашего шаблона, так как он не должен быть изменен PHP.
2

Другие решения

Отсутствуют цитаты. $row["status"] содержит строку Вы должны добавить цитаты правильно.

<script>
var a = '<?php echo $row["status"]; ?>'; // missing the quotes here
if(a == 'To be check' || a == 'Endorsed By IT')
{
$("#new").show();
}
else
$("#new").hide();

</script>
1

Чтобы показать / скрыть div с помощью JavaScript, вы можете написать так:

<script>
var a = '<?php echo $row["status"]; ?>';
if(a == 'To be check' || a == 'Endorsed By IT')
{
document.getElementById(new).style.display = 'block';
}
else
document.getElementById(new).style.display = 'none';

</script>
0

Попробуй это:-

<script>
var a = '<?php echo $row["status"]; ?>';
if(a == 'To be check' || a == 'Endorsed By IT')
{
document.getElementById("new").style.display = 'block';
}
else
{
document.getElementById("new").style.display = 'none';
}
</script>
0

я думаю, вам нужно сделать это записать условие в документе готовый метод

$( document ).ready(function() {
var a = '<?php echo $row["status"]; ?>'; // missing the quotes here
if(a == 'To be check')
{
$("#new").show();
}
else
$("#new").hide();
})
-1
По вопросам рекламы [email protected]