通过jQuery发送Div的内容

时间:2010-06-25 16:28:09

标签: jquery post escaping

我真的想把div中的所有html(包含许多其他div,表单元素等),urlencode它(也许)然后做一个ajax帖子到服务器端处理程序,以便我可以保存用户所看到的确切状态。

然后我希望能够将我保存在数据库中的字符串转发回来,以便将来回复ajax调用。

我应该使用以下内容吗?

var contents = escape($('#myDiv').html());

然后对服务器端处理程序执行ajax post操作?将逃脱确保我没有传回任何会扰乱ajax调用的特殊字符吗?

任何指针都表示赞赏。

2 个答案:

答案 0 :(得分:2)

如果您将数据作为POST参数发送,则无需担心转义数据。如果它是GET,它实际上会出现在URI中,你需要确保所有内容都被转义。

这就是你真正需要做的事情:

$.post('/my_handler', {'html': $('#myDiv').html()}. function(data){
     //do something with data     
});

您在/my_handler处回复的脚本只需要检查该字符串的'html'post参数。例如,如果您使用的是PHP,则只需检查$_POST['html']

答案 1 :(得分:1)

我正在使用它:

function htmlEncode(value){           return $('< div />')。text(value).html();         }

function htmlDecode(value){           return $('< div />')。html(value).text();         }

var contents = htmlEncode($('#myDiv')。html());