6

ajax経由でフォームデータをデータベースに送信する必要がある次のjQuery click()関数があります。

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

問題は、テキストエリア #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;
}

I'm wondering why my script doesn't deliver my textarea text to the database. In my database it is a long text field with 5000 character space

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 に答える