2014-07-06 134 views
-1

我有一个表单,人们可以发布书评。他们给出书的标题,作者的名字和评论文本。当用户点击该按钮以保存审查一个JavaScript函数被调用:MySQL截断数据

function gravarResenha(id) { 
    var livro = $("#resenhatit").val(); 
    var autor = $("#resenhaaut").val(); 
    var resen = $("#resenhatex").val(); 
    if ((livro != "") && (autor != "") && (resen != "")) { 
     $.ajax({ 
      type: "POST", 
      url: "resenha/gravar/id/" + id + "/livro/" + livro + "/autor/" + autor + "/texto/" + resen, 
      success: function(res) { 
       if(res == 1) { 
        carregaPagina('secliteratura' , 'col02'); 
       } else { 
        alert("Problemas no cadastramento da resenha. Tente novamente."); 
       } 
      }, 
      error: function(res) { 
       alert("Problemas no cadastramento da resenha. Tente novamente."); 
      } 
     }); 
    } else { 
     alert("Impossível postar uma resenha vazia."); 
    } 
} 

可变雷森接收其ID是#resenhatex textarea的值。此值正在被截断。

起初我以为这是我在我的MySQL表中使用TEXT字段的事实。然后我将它改为LONGBLOB字段,考虑到评论可能有点长。

我还在我的jQuery AJAX调用中添加了这种类型的“POST”,因为我提醒说GET方法在发送数据的大小方面有一些限制。

即使进行所有这些更改,我仍会在发送更大的评论时得到相同的截断值。

有什么建议吗?

+0

textarea或编辑器配置上的'max-length'?在发送之前,收到之后以及插入之后,总是可以检查它的长度,看看它可能会被截断的位置。 – charlietfl

+0

没有编辑器,只是一个普通的textarea。你知道这种html对象是否有默认的最大长度?我没有为这个textarea设置最大长度。 – ederpsampaio

+0

您现在可能已经指定了方法POST,但您仍将数据放入URL中,因此仍然通过GET传输...使用POST _properly_并指定要作为对象发送的数据。 – CBroe

回答

0

问题在于每当我在传递的文本中出现问号(?)时都会出现问题。

我做了以下解决问题:

var myresen = $("#resenhatex").val(); 
myresen = myresen.replace(/\?/g, "%3F"); 

然后它工作得很好!