2012-10-18 45 views
6

我有以下jQuery click()函數需要通過ajax將表單數據發送到數據庫。ajax jQuery請求是否有最大數據長度

$("#maandbutton").live('click', function(event) { 
    $.get("ajax.php",{"action":"addm","maandtekst":$('#maandtekstinput').val(),"maand":$('#maandselect').val(),"bovenonder":$('#bovenonder').val()},function(msg){ 
     $("#maandtable").append($('<tr><td class="left">' + $('#maandtekstinput').val() + '</td><td class="right">' + $('#bovenonder').val() + '</td><td class="right">' + $('#maandselect').val() + '</td><td class="icon"></td></tr>')); 
     $('table.zebra tr').removeClass('odd'); 
     $('table.zebra tr:odd').addClass('odd'); 
     $('#maandtekstinput').val(''); 
     $('#maandselect').val(''); 
     $('#bovenonder').val(''); 
     $("#maandbutton").button({ disabled: true }); 
    }) 
}); 

的問題是,如果textarea的#maandtekstinput有它很多的文字,僅追加工作,但數據並沒有達到我的SQL數據庫。

我的ajax.php腳本有一個簡單的switch語句。

$maandtekst = htmlspecialchars($_GET['maandtekst']); 

switch($_GET['action']) 
{ 
    case 'addm': 
     $query = "INSERT INTO `site_maandteksten` (`id`, `maand`, `bovenonder`, `tekst`) VALUES (NULL, '".$maand."', '".$bovenonder."', '".htmlspecialchars_decode($maandtekst)."')"; 
     $result = mysql_query($query) or die(mysql_error()); 
     break; 
} 

我想知道爲什麼我的腳本不能將我的textarea文本傳遞到數據庫。 在我的數據庫中,它是一個包含5000個字符空間的長文本字段

回答

3

不要對大數據使用GET查詢:使用POST一個。

$.post("ajax.php",{"action":"addm","maandtekst":$('#maandtekstinput').val(),"maand":$('#maandselect').val(),"bovenonder":$('#bovenonder').val()},function(msg){ 

(和在PHP使用$_POST$_REQUEST

問題與GET查詢是該參數中嵌入的URL,其在尺寸的限制(這限制是瀏覽器和服務器相關)。

+1

Ahaaa。這花了我一個小時的調試。 感謝您的幫助:) – user1755868

+0

另請參閱[URL的最大長度是多少?](http://stackoverflow.com/q/417142/1338846)。 –

相關問題