Обновление таблицы из JSON / MYSQL с помощью jQuery

Мне интересно, какой наиболее приемлемый / эффективный подход заключается в использовании таблиц с данными из 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']?>'); <? } ?> 

Я считаю, что основные функции

  • javascript setTimeout() для извлечения данных каждые 15 секунд.
  • вид хэш-сравнения между данными клиента и сервера, чтобы увидеть, есть ли модификация
  • php-функцию, которая извлекает только изменения для применения
  • javascript для обновления назначений, отправленных JSON

Возможно, вы должны использовать инструмент календаря для рендеринга.
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); } } 

не проверенная, но грубая идея