jQuery / PHP Отправка форм с помощью JSON - Как правильно обработать ответ сервера с помощью Newlines в нем? - PullRequest
0 голосов
/ 09 февраля 2012

Публикация работает великолепно, и чтение ответа счастливо, ЗА ИСКЛЮЧЕНИЕМ, когда в одном из элементов данных есть новые строки (\ n).Часы и часы погуглили, и я полностью сбит с толку и озадачен этим моментом.Что я упускаю или неправильно делаю, чтобы получить элемент данных, в котором есть переводы строки?В этом конкретном случае я собираюсь показать его пользователю, такс тэгами все в порядке, но я изначально хотел, чтобы он был в редакторе, а любые возвращенные строки переводят меня к ошибкам.

 .click(function() {
     var $form = $("#product_data_form");
    var dataString = $form.serialize()
    $.ajax({
        type: "POST",
        url: "utility02a.php",
        data: dataString,
        dataType: "json",
        success: function(server_response)
        {
            $("div#my_results").append(server_response.MyTextWithNewLines);
        }
    });

Затем на сервере в PHP (и это работает, как ожидается, если\ n в ответе

 echo '{';
 echo '"status":"'.$status.'",';
 echo '"MyTextWithNewLines":"'.json_encode($sometext).'"';
 echo '}';

Я уверен, что это проблема кодирования где-то вдоль линии, но мои глаза вращаются, пытаясь понять, что кодировать, как, где и когда.

Короче говоря, возвращаемые данные должны быть в текстовой области для редактирования, а новые строки должны быть правильно представлены в области ввода для пользователя.

1 Ответ

1 голос
/ 09 февраля 2012

Вместо этого вы можете использовать json_encode, поскольку я использую это с символами новой строки без проблем. Создайте ассоциативный массив данных, которые вы хотите закодировать. Ключи массива будут членами объекта json после его декодирования на стороне клиента:

 <?php
     $data = new Array(             'status' => $status,
                        'mytextwithnewlines' => $sometext
                      );

     echo json_encode($data);
 ?>

Это должно быть для вас!

...