@supportitc

Как передать массив данных json php в html через Jquery правильно?

echo json_encode($resultArray);

Выдаёт нечто подобное:
{"id":"54","dd_tt":"2019-02-23 19:02:08","ip":"192.168.1.33","user_id":"92","uid":"78","msg":"\u041f\u0440\u0438\u0432\u0435\u0442","read_msg":"1","name":"thetelka","photo":"..\/upload\/id_92\/434-very_small_92_.jpg"}


Но как передать данные параметры в JQUERY?

<script>
$.getJSON("<?php echo json_encode($resultArray); ?>", function(data) {
    var html = '';
    $.each(data, function(key, value){
        html += '<div class="msg_list" style="width:100%">';
        html += '<img src="'+value.photo+'"/>';
        html += '<p class="just">'+value.name+': '+value.msg+'</p>';
        html += '</div>';
    });
$('#conta').html(html);
});
</script>

<div class="conta" id="conta">

</div>


Не фурычит.. т, к не совсем понятно как правильно передать json_encode($resultArray);
  • Вопрос задан
  • 895 просмотров
Пригласить эксперта
Ответы на вопрос 1
Exomode
@Exomode
Архитектор ПО
Пример серверсайда:
function response($data = []) {
    header("Content-Type: application/json; charset=utf-8");

    $flags = JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_PRETTY_PRINT;

    $fails = implode('|', array_filter([
        '\\\\',
        $flags & JSON_HEX_TAG ? 'u003[CE]' : '',
        $flags & JSON_HEX_AMP ? 'u0026' : '',
        $flags & JSON_HEX_APOS ? 'u0027' : '',
        $flags & JSON_HEX_QUOT ? 'u0022' : '',
    ]));

    $pattern = "/\\\\(?:(?:$fails)(*SKIP)(*FAIL)|u([0-9a-fA-F]{4}))/";

    $callback = function ($m) {
        return html_entity_decode("&#x$m[1];", ENT_QUOTES, 'UTF-8');
    };
    
    echo preg_replace_callback($pattern, $callback, json_encode($data, $flags));
    exit;
}

response([ "a" => "b", ]);


Пример клиентсайда:
$.post('/some_page.php?', post).done(function (response) {
  // обработчик json, в переменной response сразу распарсенный объект благодаря заголовку Content-Type: application/json
            }).fail(function(xhr, status, error) {
                console.error(error); // обработчик ошибки ответа сервера
            });

По аналогии с методами $.get и .$ajax.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы