из Mysql в JSON
Добрый день.
недавно начал разбираться с JS и PHP, так что возможны неточности в описании моих действий:) Помогите с таким вопросом. Из mysql при помощи php (файл getjson.php) функции json_encode() формирую JSON объекты. ... $var = array(); $sql = "SELECT * FROM planer"; $result = mysqli_query($con, $sql); while($obj = mysqli_fetch_object($result)) { $var[] = $obj; } echo '{"planer":'.json_encode($var).'}'; //формируем объекы ... Далее в используя Jquery преобразую JSON в js объекты и вывожу в виде таблицы. var url="getjson.php"; $("#jsondata tbody").html(""); $.getJSON(url, function (data) { $.each(data.planer, function (i, planer) { // console.log(planer); var newRow = "<tr>" + "<td class='td_id'>" + planer.idPlaner + "</td>" + "<td class='td_date'>" + planer.DatePlaner + "</td>" + "<td class='td_time'>" + planer.TimePlaner + "</td>" + "</tr>"; $(newRow).appendTo("#jsondata tbody"); }); }); Скрипт работает хорошо. Но т.к объекты js перебираются в анонимных функциях не получается сохранить преобразованные объекты отдельно. Хочу я это сделать к примеру для фильтрации результата запроса уже на клиенте, без обращения к серверу. подскажите как это лучше всего сделать? |
Вариант 1: Очистить таблицу, отсортировать данные, заново отрендерить таблицу.
Вариант 2: При рендеринге создавать хэш-таблицу (первичный ключ) : (DOM-элемент строки). Сортируем данные. Далее проходимся по отсортированному массиву и расставляем строки таблицы на новые позиции (в получении строк нам поможет созданная хэш-таблица. |
doitden,
оберните весь код в единую область видимости: (function(){ var JSONdata; //объявляем глобальный объект данных var url="getjson.php"; $("#jsondata tbody").html(""); $.getJSON(url, function (data) { JSONdata = data.planer; //заполняем объект $.each(data.planer, function (i, planer) { // console.log(planer); var newRow = "<tr>" + "<td class='td_id'>" + planer.idPlaner + "</td>" + "<td class='td_date'>" + planer.DatePlaner + "</td>" + "<td class='td_time'>" + planer.TimePlaner + "</td>" + "</tr>"; $(newRow).appendTo("#jsondata tbody"); }); }); })(); теперь getJSON можно вызвать только раз, если JSONdata пуст. |
Часовой пояс GMT +3, время: 07:42. |