2009-06-16 63 views
1

我想從onclick事件調用一個url並將它傳遞給POST變量。我不想通過隱藏的輸入和表單提交做到這一點。當然,我想用jQuery來做到這一點。使用JQuery通過POST變量做GET請求

url必須加載到一個彈出窗口中。

這個問題,因爲我是一個jquery新手,是如何?

+0

爲什麼你不想使用表單提交/隱藏輸入?我認爲通常建議這樣做,因爲它具有更好的可維護性。 – 2010-12-01 08:36:01

+0

隱藏字段如何更易於維護?我不記得我想要使用它的具體任務,但我很確定我不使用隱藏字段的原因是我的所有數據都存儲在JavaScript變量中。 – 2010-12-03 04:37:40

回答

3

查看$.post函數。這將向您選擇的網址發送AJAX請求,但與常規表單提交不同,它不會重新加載或更改當前頁面。


編輯回覆評論:
您也可以用每個變量的隱藏輸入動態創建一個表單掰過來。將表單的目標設置爲「_blank」,然後提交它,並應該在新窗口中打開您的其他頁面。

$('#myLink').click(function() { 
    var $f = $('<form></form>') 
     .attr({ 
      method : 'post', 
      target : '_blank', 
      action : 'myOtherPage.php' 
     }) 
     .appendTo(document.body) 
    ; 
    var myHiddenVariables = { 
     id : 17, 
     name : "Joe Bloggs" 
    }; 
    for (var i in myHiddenVariables) { 
     $('<input type="hidden" />') 
      .attr({ 
       name : i, 
       value : myHiddenVariables[i] 
      }) 
      .appendTo($f) 
     ; 
    } 
    $f[0].submit(); 
    return false; 
}); 
+0

我看着那個。我認爲我不能在這種情況下運作。我需要將文件下載到彈出窗口中。 – 2009-06-16 23:16:16

0

以下將使用兩個參數向服務器發送AJAX帖子。在回調函數中,它打開一個彈出窗口並用返回的html填充它。


$("#aLink").click(function() 
{ 
    $.post("some_url", {param1:"foo", param2:"bar"}, function(html) 
    { 
     newWindow= window.open ("","newwindow","menubar=1,resizable=1,width=350,height=250"); 
     newWindow.document.write(html); 
    }); 

    return false; 
});