У меня есть массив цен, которые я выводю в таблицу с помощью цикла foreach
.Показать/скрыть строки таблицы с Javascript
Я пытаюсь выяснить, как скрыть строки в таблице, если выполнено условие. Переменная $status
оценивается как «ДА», если цена равна => 30
и «НЕТ», если < 30
.
<script type="text/javascript">
function displayRow(){
var row = document.getElementById("<?php echo $status;?>");
if (row.id == 'YES') row.id= 'none';
else row.display = '';
}
</script>
<?php
if($price > 30.00){
$status = "YES";
}else if($price < 30.00){
$status = "NO";
}
$prices = array ("20", "56", "33", "12", "66", "25", "55");
echo "<table border='1'>";
foreach ($prices as $price) {
echo "<tr id='$status'><td>$price</td></tr>";
}
echo "</table>";
?>
<button onclick="displayRow()" >Show/Hide</button>
Я попытался установить tr
id
с соответствующим статусом. Итак, в функции Javascript я пытаюсь передать $status
в getElementById
, который затем должен отображать цены >
, чем 30
, и скрыть те, что являются < 30
.
Кнопка предназначена для переключения между отображением всех данных или фильтрацией этих цен > 30
.
Я знаю, что это очень простой пример и, вероятно, совершил много ошибок, но я был бы признателен за любую помощь.
Приветствия
Это не работает, этот код настолько плох ... Прежде всего Php echo $ status ;?> ничего не возвращает, второй в вашей цене if ($ price) $ не задается так, если иначе раздел $ status = "NO", поэтому ваша выходная таблица будет содержать строки с id = "NO", и это тоже плохо, потому что id должен быть уникальным ... – szapio
Кроме того, в DOM идентификаторы должны быть уникальными. Вы можете использовать классы и 'getElementsByClassName' или' querySelectorAll' – Diego