我有以下jQuery click()函数需要通过ajax将表单数据发送到数据库。
$("#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中有很多文本,只有append正在工作,但是数据没有到达我的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个字符空间
答案 0 :(得分:3)
不要对大数据使用GET查询:使用POST。
$.post("ajax.php",{"action":"addm","maandtekst":$('#maandtekstinput').val(),"maand":$('#maandselect').val(),"bovenonder":$('#bovenonder').val()},function(msg){
(在PHP中使用$_POST
或$_REQUEST
)
GET查询的问题是参数嵌入在URL中,其大小有限(此限制取决于浏览器和服务器)。