2010-06-25 87 views
3

我真的很想將div中的所有html(包含許多其他div,表單元素等),urlencode(可能),然後做一個ajax post到服務器這樣我就可以保存用戶所看到的確切狀態。通過jQuery發送Div的內容

然後,我希望能夠將該字符串保存在數據庫中,並在未來響應ajax調用回發。

我應該使用類似以下的東西嗎?

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

然後對服務器端處理程序執行ajax post操作嗎?逃脫會確保我不會傳回任何會攪亂ajax呼叫的特殊字符?

任何指針表示讚賞。

+0

這聽起來像它應該工作。爲什麼不。 – Mark 2010-06-25 18:20:11

回答

2

如果您將它作爲POST參數發送,則不必擔心會轉義數據。如果它是一個GET,它實際上將出現在URI中,並且您需要確保所有內容都已被轉義。

這是你真正需要做的:

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

你的腳本在/my_handler響應將只需要選中「HTML」之後的參數爲字符串。例如,如果您使用PHP,您只需檢查$_POST['html']

1

我使用這個:

功能的HTMLEncode(值){ 收益$( '< DIV />')文本(值)的.html(); }

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

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