2012-10-18 19 views
6

Tôi có hàm jQuery() sau đây cần gửi dữ liệu biểu mẫu qua ajax đến cơ sở dữ liệu.Có độ dài dữ liệu tối đa cho yêu cầu jQuery ajax không

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

Vấn đề là nếu #maandtekstinput textarea phải nhiều văn bản trong đó, chỉ có append đang làm việc, nhưng dữ liệu không đạt được cơ sở dữ liệu sql của tôi.

Tập lệnh ajax.php của tôi có một câu lệnh chuyển đổi đơn giản.

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

Tôi tự hỏi tại sao tập lệnh của tôi không gửi văn bản textarea của tôi tới cơ sở dữ liệu. Trong cơ sở dữ liệu của tôi, trường văn bản dài có 5000 ký tự space

Trả lời

3

Không sử dụng truy vấn GET cho dữ liệu lớn: sử dụng POST.

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

(và trong PHP sử dụng $_POST hoặc $_REQUEST)

Vấn đề với các truy vấn GET là các thông số được nhúng trong URL, được giới hạn về kích thước (giới hạn này là trình duyệt và phụ thuộc máy chủ).

+1

Ahaaa. Điều này đã cho tôi một giờ gỡ lỗi. Cảm ơn sự giúp đỡ của bạn nó hoạt động :) – user1755868

+0

Cũng thấy [Độ dài tối đa của một URL là gì?] (Http://stackoverflow.com/q/417142/1338846). –

Các vấn đề liên quan