2012-10-18 6 views
6

Ich habe die folgende jQuery click() -Funktion, die die Formulardaten über AJAX an die Datenbank senden müssen.Gibt es eine maximale Datenlänge für eine AJAX jQuery Anfrage

$("#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 }); 
    }) 
}); 

Das Problem ist, dass, wenn das Textfeld #maandtekstinput darin zu viel Text hat, nur das Anfügen arbeitet, aber die Daten nicht erreicht meine SQL-Datenbank.

Mein ajax.php-Skript hat eine einfache switch-Anweisung.

$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; 
} 

Ich frage mich, warum mein Skript nicht liefert meinen Textbereich Text in die Datenbank. In meiner Datenbank ist es ein langes Textfeld mit 5000 Zeichen Leerzeichen

Antwort

3

Verwenden Sie keine GET-Abfrage für große Daten: Verwenden Sie einen POST.

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

(und in PHP verwenden $_POST oder $_REQUEST)

Das Problem mit GET-Abfragen ist, dass die Parameter in der URL eingebettet sind, die in ihrer Größe begrenzt ist (diese Grenze Browser und Server abhängig).

+1

Ahaaa. Das hat mich eine Stunde Debugging gekostet. Danke für Ihre Hilfe, es funktioniert :) – user1755868

+0

Siehe auch [Was ist die maximale Länge einer URL?] (Http://stackoverflow.com/q/417142/1338846). –

Verwandte Themen