2011-08-11 49 views
7

在一個表中我有這樣的聯繫:test.php?id=1JQuery的 - 添加POST變量A HREF鏈接

我想通過prev_idnext_id到test.php的爲好。 (這些變量的目的是創建一個/上一個按鈕,列表可以由用戶因此沒有簡單的方法,找出裏面test.php的排序。)

不過,我不想prev_idnext_id是在可見該用戶的網址。我可以格式化像這樣在href:

<a href="test.php?id=1" prev_id="5" next_id="45"> 

和使用jQuery「劫持」的鏈接,保持ID作爲GET的URL,但發送prev_idnext_id到test.php的作爲POST?

回答

2

你可以使用jQuery後

調用一個函數通過onclick事件發表您的數據,

<a onClick="postdata()" prev_id="5" next_id="45"> 

和jQuery代碼

function postdata(){ 
    $.post("test.php", { id: "1", next_id: "2" }, 
     function(data) { 
     alert("Data Loaded: " + data); 
     }); 
} 
+0

感謝。但是這不會將id保持爲可見的GET變量,並且不會優雅地退化? – elaxsj

+0

@elaxsj,而不是'$ .post'使用'$ .get'來創建_GET_。請記住,實際操作是隱藏的,瀏覽器根本不會改變,除非您編程。 [JQuery get](https://api.jquery.com/jquery.get/) –

4

也許這是你的代碼:

<a id="link" href="test.php?id=1" prev_id="5" next_id="45"> 

和jQuery代碼

$("a#link").click(function(){ 

    $.post("test.php", 
     { 
     prev_id: $(this).attr("prev_id"), 
     next_id: $(this).attr("next_id") 
     }, 
     function(data) { 
     alert("Data Loaded: " + data); 
     } 
    ); 

    return false; 
}); 
+2

嗨,將''test.php''更改爲'$(this).attr(「 HREF「)'。 但我希望點擊*進入*實際頁面,而不是將其顯示在警告框中!該怎麼辦? – elaxsj

+0

是的,我忘了改變'href'屬性。我的回調函數只是例子。你可以做你想做的事。 –

1

我發現做這種事情最簡單的方法是將一種形式動態地添加到您的網頁,然後提交:

$('body').append('<form id="myawesomeform"></form>'); 
$('#myawesomeform').attr('action','test.php?id=1'); 
$('#myawesomeform').attr('method','post"'); 
$('#myawesomeform').append('<input type="hidden" name="prev_id" id="prev_id" value="5">'); 
$('#myawesomeform').append('<input type="hidden" name="next_id" id="next_id" value="45">') 
$('#myawesomeform').submit(); 
+0

哈哈!看這個。 現在有效。 – sanepete