2012-05-02 43 views
1

我有一個textarea裏面的表單(表單action = post)和這個textarea下的鏈接,用戶應該填充這個textarea並點擊按鈕將texarea中寫入的文本轉移到另一個文件中,我使用jQuery抓住textarea內容並將它們追加到鏈接的href中,直到我用長字符串測試textarea時,它才工作正常。如何將長字符串發送到不帶表單的php文件?

那麼發送很長的字符串到另一個PHP文件的替代方法是什麼?

謝謝。

+0

有什麼理由,爲什麼你不希望使用一種形式? –

+0

textarea是在一個窗體中,這個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

這可能是你的問題。

但是你可以在jQuery中使用後,以及

1

使用AJAX用POST方法:

$.ajax({ 
    url: "test.php", 
    context: document.body 
}).done(function() { 
    alert("Success"); 
});