Ответ Ajax становится урезанным - PullRequest
0 голосов
/ 31 января 2011

Я отправляю html, вставленный в (с помощью CKEditor), в .php через jQuery ajax (), и этот PHP возвращает HTML-формат и возвращает его обратно в текстовое поле.

Это вызов Ajax

var elhtml = document.getElementById('products_description[1]');
$.ajax({
        type: "POST",
        dataType: "json",
        data: 'elhtml=' + elhtml.value,
        url: 'categories_cleanup.php',
        success: function(data) {

            $('#textarea').val(data.message);

        }
    });

А это PHP

<?php
echo json_encode(array("message"=>strip_tags( $_POST['elhtml'], '<ul><li>')));  
?>

Проблема в том, что когда HTML возвращается, он урезается. Итак, я начал отладку и обнаружил, что она всегда обрезается в точке, где есть специальный символ. Если я помещу тот же HTML-код, который ajax отправляет в PHP, где находится переменная $ _POST, HTML-код возвращается в текстовую область очень хорошо.

Так что проблема должна заключаться в переходе от текстовой области к php. Код обрезается в любое время, когда есть ', например: Это -> Это Код из PHP вернется с нуля к первому появлению '[...] It

Это проблема кодирования ajax? Я попытался установить ajax dataType в text, но то же самое происходит.

Я не думаю, что это имеет какое-либо отношение к PHP, поскольку он может прекрасно с ним справиться, когда html был вставлен в сам php.

Есть идеи? Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 01 февраля 2011

Ответ предоставлен ThiefMaster:

Замените 'elhtml =' + elhtml.value на {elhtml: elhtml.value} - в противном случае вы должны позаботиться о том, чтобы убежать и т. Д.

0 голосов
/ 31 января 2011

Вьющиеся кавычки не соответствуют ISO 8859, кодировке по умолчанию.Попробуйте заставить PHP отправлять заголовок Content-Type: application/json; charset=utf-8.

Вы можете проверить заголовки, используемые в транзакциях AJAX, на вкладке Net в Firebug (обычные запросы JJuery AJAX также отображаются в консоли).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...