2012-03-16 72 views
4

這是我正在使用的代碼。從我見過的其他例子來看,這應該可行,但事實並非如此。並且已經確定我正在使用最新的colorbox。將數據發佈到colorbox iframe?

function updateFolderCate(ID,Type){ 
    $.colorbox({ 
     iframe:true, 
     scrolling: false, 
     innerWidth:'100', 
     innerHeight:'100', 
     href:"page.php", 
     data:{LinkID:ID,itemType:Type}, 
     onClosed:function(){ 
      //Do something on close. 
     } 
    }); 
} 
+0

它在colorbox網站上提到 - 用於通過ajax請求提交GET或POST值。 data屬性的作用與jQuery的.load()數據參數非常相似,因爲ColorBox使用.load()進行ajax處理。所以我去了jquery網站,.load需要數據作爲對象來擔任post。我如何用colorbox做到這一點? – SReca 2012-05-10 21:08:47

回答

11

要設置IFRAME爲true。這樣做會打開一個colorbox,創建一個iframe,並將iframe的src屬性設置爲由href指定的位置。因此,邏輯上這不能執行POST請求。這可能會完成你想要的,但我不確定。

function updateFolderCate(ID,Type){ 
    $.colorbox({ 
     open: true, 
     scrolling: false, 
     innerWidth:'100', 
     innerHeight:'100', 
     href:"page.php", 
     data:{LinkID:ID,itemType:Type}, 
     onClosed:function(){ 
      //Do something on close. 
     } 
    }); 
} 

這不會像iframe方法那樣工作,您可能不得不重做您的端點。如果您的端點不需要接收POST請求,那麼請使用earlonrails的答案。

編輯:我來到這個跳水後的源代碼:Source

相關的線是800線和856線iframe和HREF似乎並不兼容,所以後來我檢查是在加載的元素Firebug並注意到它是一個將src屬性設置爲href變量的iframe。

+0

謝謝埃裏克!我測試了這個代碼,它的工作就像一個魅力!我不想通過URL傳遞var並使用GET。 – SReca 2012-05-14 20:43:21

0

在您的示例代碼,data是一個對象。在這種情況下,它是由對象文字語法創建的。

究竟發生了什麼?

  1. 什麼瀏覽器(包括版本號)你有嘗試過嗎?

  2. 你使用的是什麼jQuery版本?

  3. 在控制檯中是否有任何錯誤?

  4. 您是否查看過Firebug(或其他開發人員工具/ Fiddler /等)的網絡選項卡中的請求,以準確查看請求中的內容(例如請求方法)和服務器的響應?

  5. 您是否嘗試過直接使用jQuery.load()來查看會發生什麼?

3

它說: 」 .load(URL [,數據] [,完整(responseText的,textStatus,XMLHttpRequest的)]),其將請求發送包含URL 烏拉串 數據A地圖或與請求一起發送到服務器的字符串「。

你確實有一個href對象,但我不認爲它們在這種情況下一起使用。 要使用.load或在這種情況下,我認爲你需要指定一個url。我認爲這些方式中的任何一種都可能奏效

function updateFolderCate(ID,Type){ 
     $.colorbox({ 
      iframe:true, 
      scrolling: false, 
      innerWidth:'100', 
      innerHeight:'100', 
      href:"page.php?LinkID=" + ID + "&itemType=" + Type, 
      // or data : { "page.php", { LinkID:ID,itemType:Type } } 
      onClosed:function(){ 
       //Do something on close. 
      } 
     }); 
    } 

http://www.codingforums.com/showthread.php?t=158713

http://api.jquery.com/load/

+0

這是一些美麗的js – twitch 2012-05-12 19:57:20

1

可以在其本身會從頂部網頁和帖子中的數據是這樣的iframe打開一個空白頁:

var postData = window.top.getDataToPost() 
$.post(postUrl,postData) 

在其打開顏色框的頁面,創建一個函數來提供的價值

function getDataToPost() { 
    return { param1 = value1 } 
}