通过Ajax提交wysiwyg数据的问题

时间:2012-04-03 06:40:13

标签: ajax wysiwyg

我正在使用Cl编辑器在Cms上工作,每次我通过ajax提交数据我都遇到了问题。

让我说我在我的wysiwyg编辑器中写了10行,但我只收到了3或4的php,在firebug中进行了一些调试之后我注意到的是我通过ajax发送的html包含了一个类“Apple-converted- space“<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 个答案:

答案 0 :(得分:1)

您可能需要检查是否是无法发送正确数据的javascript或无法接收正确数据的后端。

首先,您应该通过编写警报(数据)来调试​​javascript;在您从该cieditor控件获取数据后立即声明,并看看您到达那里。使用Firefox,您也可以使用警告框中的鼠标指针复制html。 (这在IE中是不可能的)

您还应该检查cieditor规范,看看是否有更简单的方法来获取javascript中的数据。

您可能还想考虑使用CKEditor。

答案 1 :(得分:0)

您正在发布数据而不转义数据内容。自从&amp;是一个帖子中不同字段的分隔符,数据将只包含部分直到第一个&amp ;.使用encodeURIComponent来转义数据值。

更改行

parameters ='data ='+ data

parameters ='data ='+ encodeURIComponent(data);

另请参阅:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent