2011-10-12 55 views
0
function autosave() 
{ 
    setTimeout("autosave()", 15000); 

    var did = $("#did").val(); 
    var content = $('.nicEdit-frame').contents().find('#nicEditContent').html(); 

    if (content.length > 0) 
    { 
     $.ajax( 
     { 
      type: "POST", 
      url: "inc/autosave.class.php", 
      data: "did=" + did + "&content=" + content, 
       contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15", 
      cache: false, 
      success: function(message) 
      { 
       $("#message").empty().append(message); 
      } 
     }); 
    } 
} 

這是做什麼是需要什麼在textarea併發送到autosave.class.php,它將它發送到MySQL數據庫。
問題是數據在數據庫中斷了,只顯示它的前幾個句子;通常在引號處切斷。
我認爲這不是MySQL問題的PHP(已經測試過),它是PHP部分的AJAX/JQuery數據。
缺少序列化/編碼嗎?如果是這樣,我該如何解決它?缺少序列化或編碼

回答

2

如果有人將Me & You放在字段中,那麼您的數據是否妥善轉義,該字段將僅包含Me,因爲&被視爲參數分隔符。

data: "did=" + encodeURIComponent(did) 
    + "&content=" + encodeURIComponent(content), 

如果數據仍然被截斷,檢查數據庫字段的大小。如果傳遞的數據大於該字段實際可以容納的大小,MySQL不會失敗。

2

你應該讓jQuery的建設POST字符串爲您傳遞對象:

data: { did: did, content: content },