2012-11-09 44 views
1

我已經成功地在一個jQuery對話框打開HTML頁面。我也傳遞了一個名爲'vendorid'的數據給它,但不知道如何在打開的html頁面中檢索它。將數據傳遞到jQuery用戶界面對話框中打開HTML頁面

  $('#btnShowSupplierStats').click(function() { 
      showUrlInDialog('../supplierstats.htm?vendorId=' + $(this).attr('vendorId')); return false; 
      //showUrlInDialog('../Default2.aspx'); return false; 
     }); 

     function showUrlInDialog(url) { 
      var vid = $(this).attr('vendorId') 
      var tag = $("<div id='statsDiv' vid ='"+ vid +"'></div>"); 
      $.ajax({ 
       url: url, 
       success: function (data) { 
        tag.html(data).dialog({ show: "fadein", hide: "fadeout", 
        modal: true, minHeight: 550, minWidth: 800, autoOpen: false, 
        close: function (event, ui) { $(this).remove(); }, buttons: [{ 
        text: "Close", click: function() { $(this).dialog('close'); 
        return false; } }] }).data("vendorid", vid).dialog('open'); 
        return false; 
       } 
      }); 
     } 

UPDATE:從法魯克答案會做好這項工作(他提到即第二個選項,因爲我使用的是100%的客戶端方法)。但是我沒有將數據存儲在隱藏字段中。相反,我用下面的方法也可以工作始終:

  1. 當你即將通過jQuery來打開對話框,在此之前只是,設置按鈕,這是對話框的揭幕戰的屬性。就我而言,我在這個按鈕上設置了一個名爲'vendorid'的屬性。假設開啓者按鈕的ID是'btnOpenVendorDialog'。所以需要使用下面的代碼。

    $( '#btnOpenVendorDialog')ATTR( '廠商ID', 'Vendor1234')。 //這裏打開你的對話框....

2.然後,在該對話框窗口中打開HTML頁,我可以輕鬆地檢索沒有任何問題這個屬性。

var vid = $('#btnOpenVendorDialog').attr('vendorid'); 

就是這樣。無論你想用這個傳遞的數據你都準備好做

+0

您可以更改服務器腳本,它把VENDORID參數,它創建的HTML頁面? – Barmar

+0

我該怎麼做?目標html頁面是完整的STATIC html頁面,沒有服務器端交互。在父頁面中,我從會話變量中獲得了vendorid。 – Sunil

+0

如果它是一個靜態頁面,爲什麼要在URL中添加一個參數?參數由服務器端腳本使用。 – Barmar

回答

1

有兩種方法可以做到這一點:

  1. 使用服務器端,並在後期得到傳遞的數據或得到(在你的情況下廠商ID是GET),並用它來填充一個隱藏的元素或數據任何可用元素的vendorID屬性。
  2. 如果您使用的JavaScript那麼你已經爲VID傳遞的數據VENDORID後即可獲得成功的功能,所以把它作爲一個隱藏的輸入字段或者把它作爲一個數據供應商ID在其他的DOM元素之一和訪問它從那裏。
+0

你的意思是jQueryUI對話框的成功函數? – Sunil

相關問題