6

我有以下 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 中有很多文本,则只有附加功能有效,但数据无法到达我的 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 个字符空间的长文本字段

4

1 回答 1

3

不要对大数据使用 GET 查询:使用 POST 查询。

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

(在 PHP 中使用$_POSTor $_REQUEST

GET 查询的问题在于参数嵌入在 URL 中,其大小受到限制(此限制取决于浏览器和服务器)。

于 2012-10-18T10:06:42.723 回答