Мне интересно, какой наиболее приемлемый / эффективный подход заключается в использовании таблиц с данными из json.
У меня есть один проект в разработке, где мне нужно обновлять отдельные ячейки таблицы, основываясь на таблице mysql. Мои метки оси X будут отсортированы по датам (также вытаскиваются из mysql). Ярлы Y-оси являются временами (они всегда одинаковы и могут быть созданы статически). В содержимом таблицы будут доступны временные интервалы назначения (также выведенные из mysql).
В этой таблице чисто чтение mysql, так как это необходимо для обновления таблицы. Мне нужно обновлять содержимое таблицы каждые 15 секунд (без обновления страницы, очевидно). Итак, мой вопрос: какой лучший способ дать ссылку на каждую ячейку, чтобы я мог программно обновить их с помощью моего json-вывода. Это также потребует возможности удалить столбец, если день был удален из списка назначения.
Любая помощь просто потрясающая.
Вы можете сделать это так
Ваше поколение таблиц:
<?php // example for one col while($array = mysql_fetchassoc($result)) { ?> <tr> <td id="col_name_<?=$array['row_id']?>"><?=$array['col_val']?></td> </tr> <? } ?>
Ваш ответ AJAX должен выглядеть следующим образом:
<?php while($array = mysql_fetchassoc($result)) { ?> $('#col_name_<?=$array['row_id']?>').html('<?=$array['col_val']?>'); <? } ?>
Я считаю, что основные функции
setTimeout()
для извлечения данных каждые 15 секунд. Возможно, вы должны использовать инструмент календаря для рендеринга.
Fullcalendar – довольно хорошее решение с открытым исходным кодом.
Для обновлений я хотел бы подойти к этому, представив такие данные, как:
appointment_id, timestamp_start, timestamp_end, ...
С этим вы можете узнать, существует ли уже встреча или если это изменение (обновление или удаление)
Вы также можете вывести даты для отображения
редактировать
Поскольку ваш стол не такой большой и всегда основан на день / час, это будет намного проще в управлении:
Javascript setTimeout()
для извлечения данных каждые 15 секунд,
Получите всю таблицу JSON,
Загрузите его, создав HTML с помощью jQuery, например:
table = $('#table_container'); /* data -> appointments indexed by hours/days fetched by JSON * x -> days, y -> hours */ for (y=0; data[y].length; y++) { tr = $('<tr />'); table.append(tr); for (x=0; data[y][x]; x++) { td = $('<td />'); td.html(data[y][x]); tr.append(td); } }
не проверенная, но грубая идея