2009-10-19 134 views
4

意見的說法我有一個關於Drupal的6.x的 的請求,我想有這樣的行爲:更新的Drupal通過AJAX

想象有2列,左邊的節點(僅標題例如列表),在右側顯示僅顯示左側內容之一的視圖。 我的想法是以AJAX的方式實現這個功能:單擊左側列表中的鏈接,用實際節點更新右側的視圖。

這是處理的最佳方式?

我的想法是使用面板,使2列面板與2次,一個(左)上過濾內容類型,不帶參數,和一個在其上發生在作爲參數的節點ID的權利要被顯示。

但是如何連接與AJAX的2次? (或者更好的,如何通過AJAX調用更新右側的視圖?) 是可能的嗎?

任何幫助或想法真的歡迎 謝謝!

乾杯 莫羅

回答

2

這當然是可能的,而且也不是很困難的事。

你的任務可分爲兩個主要部分:

  1. 提供的,需要一個節點ID(NID)後端一個「回調」 URL並返回標記來顯示在右側面板中的節點一種可以通過javascript處理的格式。這將在正常的Drupal模塊中用PHP完成。重點不是像往常一樣返回完整的Drupal頁面,而只是返回節點的標記。
  2. 針對前端,當通過點擊左側面板中的鏈接觸發,通過URL回調上述檢索新的節點標記和替換它的右面板的內容創建邏輯。這需要在JavaScript中使用Drupal JavaScript API和jQuery來完成。

你可以找到一個introduction and example for AJAX in Drupal here.(這確實幾乎正是你想做的事,只能用圖像)

你也應該看看這更general entry point for JavaScript in Drupal

3

你也可以做一個快速的黑客,這是相當靈活的,因爲它可以讓你改變你的觀點不改變代碼。

最近我有一個類似的任務,併爲你的任務,我會做到以下幾點:

  1. 你的右列,創建一個過濾器曝光(節點ID),並使用CSS隱藏整個暴露過濾器的形式。
  2. 使用jQuery,將點擊行爲附加到左列的標題。
  3. 點擊行爲花費的節點ID,發現附着露出濾波器在右列中,進入節點ID輸入到輸入字段,並且執行形式的.submit()。

.submit()觸發build-into-views調試好的ajax請求,刷新右列。

+0

這就是我想到的。加工! – 2009-11-12 11:06:48