Ajax (jQuery) и PHP получение HTML таблицы, и данных

Здравствуйте.
Когда получаю 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-ответ засунуть и хтмл (фактически, как строку), и другие данные любого характера под разными ключами. Ничего страшного в этом не будет, но грамотно будет передавать не сам хтмл, а правила его построения (если он может сильно разниться) или данные, которыми нужно заполнить шаблон (если он всегда одинаковый), а у клиента уже создавать необходимые элементы.


в json можно и экземпляр обьекта засунуть. json вообще многофункциональный


Можно выполнить два запроса.
Можно в одном запросе получать не html, а JSON с данными для генерации таблицы, используя шаблон, и для отрисовки графика.
И даже можно засунуть html в JSON.