Попытаюсь описать, что нужно сделать. По данным из файла data.json строится таблица. Видны строки с параметром hid=null. У скрытых подразделов, hid равен id соответствующим им разделам. По клику на ячейку раздела с классом "rmenu (номер)", появляются строки подразделов с соответствующим номером в классе "hid (номер)".
<?php
$getfile = file_get_contents('data.json');
$jsonfile = json_decode($getfile);
$hid = array();
$id = array();
?>
<table align="center">
<tr>
<th>Title</th>
<th>Имя</th>
<th>Адрес</th>
<th>Телефон</th>
</tr>
<tbody>
<?php foreach ($jsonfile as $index => $obj) {
if ( $obj->hid === null ) {
echo '<tr><td><a href="#" class="rmenu ' . $obj->id . '">' . $obj->id . '</a></td>'; ?>
<td><?php echo $obj->full_name; ?></td>
<td><?php echo $obj->address; ?></td>
<td><?php echo $obj->phone; ?></td>
</tr>
<?php $id[$index] = $obj->id;
} else {
echo '<tr class="hid ' . $obj->hid . '">' ?>
<td><?php echo $obj->hid; ?></td>
<td><?php echo $obj->full_name; ?></td>
<td><?php echo $obj->address; ?></td>
<td><?php echo $obj->phone; ?></td>
</tr>
<?php $hid[$index] = $obj->hid;
}
}
$hid_unique = array_values(array_unique($hid)); ?>
</tbody>
</table>
Вроде, через jQuery правильно элементы выбираю, но не работает. Может кто подскажет где ошибся.
<script>
$(document).ready(function() {
var hid_unique = JSON.parse('<?php echo json_encode($hid_unique); ?>');
// В массиве hid_unique нужные номера
$(".hid").hide();
for ( var i = 0; i < hid_unique.length; i++ ) {
// Привязываю события по клику
$(".rmenu " + hid_unique[i]).click(function() {
$(".hid " + hid_unique[i]).show(); // Показываю скрытые строки с тем же номером
});}
});
</script>
С PHP проблем нет. Генерит такую разметку (в сокращенном виде):
<tbody>
<!-- Видимый раздел -->
<tr>
<td><a href="#" class="rmenu 101">101</a></td>
<td>full_name1</td>
<td>address1</td>
<td>phone1</td>
</tr>
<!-- Не видимый подраздел -->
<tr class="hid 101" style="display: none;">
<td>101</td>
<td>full_name2</td>
<td>address2</td>
<td>phone2</td>
</tr>
</tbody>
$(".rmenu " + hid_unique[i]).click(function() {
$(".hid " + hid_unique[i]).show();
Точку перед именем второго класса потеряли.
И если классы у одного элемента, то без пробела. Пробел в селекторе значит, что поиск будет внутри элемента по первому селектору(до пробела).
Типа: $('.a .b') ищем элемент с классом b, который в элементе с классом a.
$('.a.b') ищем элемент с классами: a, b.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Посоветуйте, как наиболее свежие источники или литературу, в которой можно узнать про соединение android приложения c MySQL с помощью PHP и Json и примеры...