2010-04-20 97 views
3

基本上,我希望簡單地打印出每個在CCK領域的允許值..允許值列表在Drupal CCK字段

我知道允許的值存儲在表中的文本字段中:「 content_node_field」。

的值,然後儲存在「global_settings」

我期待以某種方式打印出來使用PHP循環每個單獨的允許值。

但是,所有值都存儲在一個文本字段中..即時通訊發現它很難單獨打印出每個值。

回答

1

像這樣的東西應該做的伎倆。

// Get the global_settings like you described. 
$serialized_data = db_result(db_query("...")); 
// Unserialize the data. 
$unserialized_data = unserialize($serialized_data) 
// Foreach the allowed values. 
$values = array(); 
foreach(explode("\n", $unserialized_data['allowed_values']) as $value) { 
    $values[] = $value; 
} 
+0

對不起,foreach循環有一些問題。 收到此錯誤:警告:在C的foreach()提供的參數無效:\ WAMP \ WWW \網站\所有\模塊上線11 \定製\ marli \ marli.admin.inc它說: 'allowed_values' ive把字段'global_settings'(其中包含數據) – GaxZE 2010-04-20 13:32:22

+0

@GaxZE修正代碼中的小缺陷,測試它,它的工作原理! – googletorp 2010-04-20 14:05:29

+0

對不起是一個完整的痛苦..我將如何能夠將每個單獨的值存儲到變量?例如: $ value = array(); $ a = $ value ['a']; $ b = $ value ['b']; 我覺得我接近我試圖實現! – GaxZE 2010-04-21 09:05:49

0

如果我得到你的問題的權利,你可以通過簡單的後面添加了[]到字段的名稱創建PHP數組,因此,例如:

<input type="text" name="myname[]" /> 

現在你可以像數組的值這樣的:

foreach($myname as $value) 
{ 
    echo $value . '<br />'; 
} 

更新基於評論:

可以使用json_decode功能將數據轉換成數組,然後據此操作:

例子:

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; 

var_dump(json_decode($json, true)); 
+0

內的場global_settings包含多個值..例如: 一個:4:{S:15: 「text_processing」; S:1: 「0」; S:10: 「MAX_LENGTH」; S 0: 「」; S:14: 「allowed_values」; S:17: 「A * 甲 乙 ç d E」; S:18: 「allowed_values_php」; S:0: 「」;} 即時通訊尋找輸出每個等級(a,b,c,d,e)並且將其餘的帶走,現在我知道這是str_replace,但是我會在內容確實不同的多個字段上執行此操作。 – GaxZE 2010-04-20 10:37:38

+0

@GaxZE:請參閱我的更新回答。 – Sarfraz 2010-04-20 10:51:36