Ajax (jQuery) и PHP получение HTML таблицы, и данных
Здравствуйте.
Когда получаю HTML таблицу никаких проблем нет, но вот мне одним запросом, нужно кроме html таблицы получить и данные для отрисовки графика в JSON, подскажите можно ли как-то это все получить одним JSON'мо? Правильно ли вообще HTML-данные помещать в JSON.
Заранее благодарен.
Когда получаю HTML таблицу никаких проблем нет, но вот мне одним запросом, нужно кроме html таблицы получить и данные для отрисовки графика в JSON, подскажите можно ли как-то это все получить одним JSON'мо? Правильно ли вообще HTML-данные помещать в JSON.
Заранее благодарен.
1 ответов
Да, можно все данные получить одним запросом. Для этого делаем следующее:
1. В $.ajax добавляем параметр:
$.ajax({
// прочие параметры
dataType: 'json'
});
2. Формируем ответ таким образом:
$html = /* ваш html-код*/;
$json_str = /* json-данные*/;
echo json_encode(array($html , $json_str));
3. Теперь с полученным ответом работаем, как с массивом
$.ajax({
// прочие параметры
dataType: 'json',
success: function(json){
json[0] // содержит ваш html-код, можно вставить в какой-то блок $('#some_block').html(json[0]);
json[1] // строка json, с которой что-то делаете
}
});
Можно в один json-ответ засунуть и хтмл (фактически, как строку), и другие данные любого характера под разными ключами. Ничего страшного в этом не будет, но грамотно будет передавать не сам хтмл, а правила его построения (если он может сильно разниться) или данные, которыми нужно заполнить шаблон (если он всегда одинаковый), а у клиента уже создавать необходимые элементы.
Можно выполнить два запроса.
Можно в одном запросе получать не html, а JSON с данными для генерации таблицы, используя шаблон, и для отрисовки графика.
И даже можно засунуть html в JSON.