2011-10-05 71 views
0

我知道這可能是一個愚蠢的問題,但我有一個字段說a和b,現在如何獲取值併爲a和b設置值。 現在我的代碼是這樣的..如何獲取cck自定義字段的值和設置值

$n = node_load($node->id); 
$n->title; 

我正在結題,我想知道如何獲得併爲a和b,請設置的值,如果我設定的值,並b將不會被保存使用

node_save($ n);

??

回答

2

這取決於一點你正在使用和正在使用的特定字段類型的版本,但這樣的事情:

// Drupal 6 
$n = node_load($node->id); 
$n->title = 'A title'; 
$n->field_my_field_a[0]['value'] = 'A value'; 
$n->field_my_field_b[0]['value'] = 'B value'; 
node_save($n); 

// Drupal 7 
$n = node_load($node->id); 
$n->title = 'A title'; 
$n->field_my_field_a[LANGUAGE_NONE][0]['value'] = 'A value'; 
$n->field_my_field_b[LANGUAGE_NONE][0]['value'] = 'B value'; 
node_save($n); 

在這兩種情況下,當您撥打node_save()時,現場數據將與節點一起保存。

值得注意的是,兩種情況下的0索引都指的是字段中的第一項。如果一個字段有多個值,你可以繼續添加到數組中。該value密鑰可能需要根據該字段保存(例如的FileField將持有fid(文件號)文件的其持有這樣相應地調整數據的類型來改變。

而且LANGUAGE_NONE可能需要更換通過所需的語言代碼,如果您使用Drupal 7版本。

0

你的問題有點令人困惑,因爲你永遠不會解釋什麼是和是什麼。但訪問一個cck字段通常看起來像這樣:

$node = node_load($nid); 
$field_value = $node->field_name[0]['value']; 

如果它是一個多重選擇具有過零偏移值。您可以使用同樣的方法設置的值:

$node = node_load($nid); 
$node->field_name[0]['value'] = $field_value; 
node_save($node); 
相關問題