2010-09-15 70 views
0

我甚至不知道這是可能的,但我需要通過用戶點擊的鏈接POST數據發送到一個頁面。這可以做到嗎?使用錨加載頁面發送POST數據

要清楚,我不想讓數據恢復到當前頁面;目標頁面應該就好像用戶提交表單瀏覽器加載,但我需要發送POST數據沒有一種形式,如果可能的話

回答

5

你的意思是沒有一個形式?表單可以「隱形」給用戶嗎?如果是這樣,你可以做這樣的事情:

$("a.post").click(function (e) { 
    e.preventDefault(); 

    $("<form action='"+this.href+"' method='post'></form>").submit(); 
}); 

很明顯,它可以做很多不同的方式,但你明白了。

這將是就像與POST參數,以防服務了該網頁,當你使用這些信息在服務器的請求完整的形式。

+0

我最初創建了一個隱藏表單,但我將重寫它以使用此方法 - 非常光滑。 – Will 2010-09-16 18:18:21

0

我只想將數據添加到URL,然後在目標頁面可以提取它:

主頁:

<a href="page2.htm?name=Fred">Fred</a> 

目標頁面(page2.htm)

$(document).ready(function(){ 
var name = gup("name", window.location.href); 
alert(name); 
}); 

/* Returns URL parameter 
* url: http://www.somesite.com?name=hello&id=11111 
* z = gup('name', window.location.href); // z = hello 
* Original code from Netlobo.com (http://www.netlobo.com/url_query_string_javascript.html) 
*/ 
function gup(n,s){ 
n = n.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]"); 
var p = (new RegExp("[\\?&]"+n+"=([^&#]*)")).exec(s); 
return (p===null) ? "" : p[1]; 
} 
+0

數據需要接收服務器端,而我被告知它一)必須提交數據,和b)在服務器端代碼不能/不會被修改。猜猜我是隱形的形式和'.submit()去' – Will 2010-09-15 22:20:37

+0

如果你正在使用PHP,你可以使用GET獲得「名」的值也是如此。 – Mottie 2010-09-15 22:30:22

3

如何與一個隱藏的輸入形式?剛創建提交表單錨標籤的單擊事件:

<script type="text/javascript"> 
$(function() { 
    $("#postLink").click(function() { 
     $("#form").submit(); 
    }); 
}); 
</script> 

<a id="postLink" href="javascript:;;">click to post</a> 
<form id="form" action="[postTargetUrl]" method="post"> 
    <input type="hidden" name="postVariable" value="[postValue]" /> 
</form> 
+0

很好的建議,這是我的初步解決方案,但我認爲接受的答案需要這個並將其細化。 – Will 2010-09-16 18:18:58

相關問題