Проблема с отправкой wysiwyg данных через Ajax - PullRequest
0 голосов
/ 03 апреля 2012

Я использую Cl Editor. На Cms в работе над, Каждый раз, когда я отправляю данные через ajax, у меня возникают проблемы с этим.

Допустим, я пишу 10 строк в моем редакторе wysiwyg, но я получаю только 3 или 4 в php, после некоторой отладки в firebug я заметил, что HTML, который я посылаю через ajax, содержит диапазон с классом «Apple-convert- пробел "<span class="Apple-converted-space">&nbsp;</span> Я могу получить все до этого промежутка, но текст после этого промежутка отсутствует. Я понятия не имею, что это такое. Позвольте мне написать мой код для лучшего понимания.

Для получения данных кредитора

var data = $(".cleditorMain iframe").contents().find('body').html();

Отправка формы Ajax

    if(window.XMLHttpRequest)
    {
        xmlhttp = new window.XMLHttpRequest();
    }
    else
    {
        xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    }

    xmlhttp.onreadystatechange = function() {
        if(xmlhttp.readyState == '4' && xmlhttp.status == '200')
        {
        }
    }
    parameters = 'data=' + data
    xmlhttp.open('POST', 'libs/make_procedure.php', true);
    xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    xmlhttp.send(parameters);
    return true;

Я также пытался использовать метод jquery ajax. Там существует такая же проблема, поэтому, пожалуйста, не просите меня использовать другой способ отправки данных через ajax.

Спасибо

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Возможно, вы захотите проверить, является ли javascript, который не отправляет правильные данные, или ваш сервер, который не может их получить.

Итак, сначала вы должны отладить javascript, написав предупреждение (данные);Заявление сразу после того, как вы получите данные из этого элемента управления Cieditor, и посмотрите, что вы получите там.Используйте Firefox, и вы также можете скопировать HTML, используя указатель мыши из окна предупреждения.(что невозможно в IE)

Вы также должны проверить спецификации cieditor, чтобы увидеть, есть ли более простой способ получить данные в javascript.

Вы также можете рассмотреть возможность использования CKEditor.

0 голосов
/ 10 мая 2012

Вы публикуете данные, не экранируя содержимое данных.Поскольку & является разделителем для различных полей в записи, данные будут содержать только часть до первого &.Используйте encodeURIComponent для экранирования значения данных.

Измените строку

параметры = 'данные =' + данные

на

параметры = 'данные ='+ encodeURIComponent (data);

См. также: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent

...