2012-05-02 5 views
1

私はフォーム内にテキストエリア(フォームアクション=ポスト)とこのテキストエリアの下のリンクを持っています。ユーザーはこのテキストエリアを埋めると、テキサスで書かれたテキストを別のファイルに転送するボタンをクリックします。テキストエリアの内容を取得してリンクのhrefに追加してください。長い文字列でテキストエリアをテストするまで、これはうまくいきました。長い文字列をフォームなしでPHPファイルに送信するには?

他のPHPファイルに非常に長い文字列を送信するための代替手段は何ですか?

とありがとうございます。

+0

フォームを使用したくない理由はいかなる理由がありますか? –

+0

textareaはフォームにあり、このテキストエリアは保存されるものではなく、フォームはPOSTを別のファイルに使用しています。私はw3cに従って別のフォームの中でフォームを使用できるとは思いません。 – Pierre

答えて

5

$ POSTを使用すると、POSTデータのサイズ制限はありません。

リンクの動作(ターゲットページを開く)が必要な場合は、フォームが必要です。

単純なアプローチ:

<script type="text/javascript"> 
/** 
    * @param o mixed selector/element to send 
    * @param a string url to send to 
    * @param m optional string HTTP-method (default: 'post') 
    * @param t optional string target-window(default: '_self') 
    **/ 
function fx(o,a,m,t) 
{ 
    $('<form/>') 
    .attr({action:a,method:m||'post',target:t||'_self'}) 
     .css('display','none') 
     .append($(o).clone()) 
      .appendTo('body') 
      .submit() 
       .remove(); 
} 
</script> 


<form> 
<input name="foo"> 
<textarea id="textareaId" name="bar">foobar</textarea> 
<a style="cursor:pointer;text-decoration:underline" 
    onclick="fx('#textareaId','some.php')">send only the textarea</a> 
</form> 

それは、その場で新しいフォームを作成し、フォームに必要な要素を追加し、(あなたがしたい任意の場所に)フォームを送信

+0

私はPOSTデータに制限がないことを知らなかったので、試してみてください。$ .post – Pierre

+2

実際には、PHP設定に 'POST_MAX_SIZE'指示文があります。 URL文字列の文字制限よりもはるかに少ない可能性があります。 –

+0

@ JimDとjQueryの$ .postはどうですか? – Pierre

0

制限がありますあなたはURLで送ることができるcharachtersの数に。 IE url limit

これは問題の可能性があります。

しかし、あなたはPOSTメソッドと同様

1

使用AJAX jqueryのポストを使用することができます。

$.ajax({ 
    url: "test.php", 
    context: document.body 
}).done(function() { 
    alert("Success"); 
}); 
関連する問題