2009-07-28 74 views
0

現在我正在用jquery的$ .ajax加載節點。我的意思是我只需輸入節點網址,然後加載整個頁面。使用jQuery在Ajax中加載節點字段

這可能是荒謬的,完全不正確的方式來做到這一點。如何在不加載廚房水槽的情況下在節點中獲取特定字段?

感謝

我也看到了這個模塊:

http://drupal.org/project/js

難道我用的?

編輯:什麼我做的是這樣一個例子:

$.ajax({ 
    url: node/500, 
    success: function(response){ 
     var ajaxresult = $("<div/>").append(
     response.replace(/<script(.|\s)*?\/script>/g, "").find('#field-want-this-field').html(); 
     $someplace.append(ajaxresult); 
    } 
}); 

這首先加載整個頁面,然後抓起領域。既然它在同一個網站上,肯定有更好的方法?

謝謝!

+0

你可以發佈你正在做的一個小代碼樣本?我不清楚你的'node url'是什麼意思。 – seth 2009-07-28 04:55:36

+0

謝謝,我更新了代碼示例。 – Jourkey 2009-07-28 05:05:08

回答

1

你在做什麼是一種浪費,但它需要一點工作才能使其發揮作用。需要做的是設置一個函數,它可以爲你所需要的查詢提供查詢,fx一個可以獲取節點ID和字段名,然後返回字段文本的函數。有兩種方法可以做到這一點。

  1. node_load(慢但簡單)
  2. 直接查詢分貝爲包含數據(速度快,但更復雜的)
的一個問題是通常,字段是字段有時使用增量如果有一個以上的值爲同一領域。這使得獲取所需數據變得更加複雜。這也是通過管理界面決定的,這意味着如果您不小心,網站管理員可能會中斷此功能。另一件事是域的名稱也是通過管理界面創建的(除非你在自己的模塊中創建了一些包含字段的節點類型)。

然後東西,它使查詢分貝自己很難,是CCK有可能使表不同的方式來保存數據,你要弄清楚究竟是如何工作的,讓這個普通的。

最後,如果你創建自己的功能,你可以做這樣的事情:

<?php 
function get_date($args) { 
    // get the data as $data 
    return drupal_json $data; 
} 

和你的Ajax。

$.getJSON('mymodule/node/nid/field_name', function(php_data) { 
    $someplace.append(php_data); 
}); 

Drupal將緩存的GET請求,所以你必須使用不同的URL來利用如題。