Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.05.2014, 15:53
Новичок на форуме
Отправить личное сообщение для doitden Посмотреть профиль Найти все сообщения от doitden
 
Регистрация: 11.05.2014
Сообщений: 1

из 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 перебираются в анонимных функциях не получается сохранить преобразованные объекты отдельно. Хочу я это сделать к примеру для фильтрации результата запроса уже на клиенте, без обращения к серверу.

подскажите как это лучше всего сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 11.05.2014, 17:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Вариант 1: Очистить таблицу, отсортировать данные, заново отрендерить таблицу.
Вариант 2: При рендеринге создавать хэш-таблицу (первичный ключ) : (DOM-элемент строки). Сортируем данные. Далее проходимся по отсортированному массиву и расставляем строки таблицы на новые позиции (в получении строк нам поможет созданная хэш-таблица.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 26.05.2014, 14:59
Интересующийся
Отправить личное сообщение для SindBad Посмотреть профиль Найти все сообщения от SindBad
 
Регистрация: 15.03.2011
Сообщений: 11

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 пуст.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу распарсить JSON. gorenie jQuery 3 29.11.2013 22:26
JSON - отобразить данные таблицы oracle / mssql / mysql ecivgamer Javascript под браузер 3 14.11.2012 18:17
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
json получает только первую строчку из mysql почему ? Sadist_dead AJAX и COMET 14 11.08.2011 05:20
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10