2010-01-29 50 views
0

有誰知道我可以如何將以下添加到form_alter? 目前我有兩個整數cck字段,這些字段使用php values命令從sql填充。Drupal:將代碼添加到form_alter中的option_widgets?

一個字段是爲make而另一個字段爲model。製造商和型號都是他們自己的節點類型。模型有一個節點參考。

我想在製作下降辦下來(CCK:INTEGER:SELECT)什麼是變化,修改模型字段的內容。我已經制作了自己的定製表單,但它太過於笨拙,並且想要使用基本的drupal節點編輯表單。

理想情況下,我希望能夠通過這種混合。 「#attributes」 =>數組(「平變化」 =>「populatemodels(此,\」編輯場模型\「)」)

是否有任何人的在代碼這樣做的方式知道?

在我form_alter添加屬性的代碼不會產生任何onchanges:

#field_make (Array, 14 elements) 

    * 
     #type (String, 20 characters) optionwidgets_select 
    * 
     #default_value (Array, 1 element) 
      o 
      0 (Array, 1 element) 
       + 
        value (String, 1 characters) 8 
    * 
     #required (String, 1 characters) 1 
    * 
     #columns (Array, 1 element) 
      o 
      0 (String, 5 characters) value 
    * 
     #title (String, 4 characters) Make 
    * 
     #description (String, 0 characters) 
    * 
     #delta (Integer) 0 
    * 
     #field_name (String, 10 characters) field_make 
    * 
     #type_name (String, 3 characters) car 
    * 
     #tree (Boolean) TRUE 
    * 
     #weight (String, 2 characters) -1 
    * 
     #access (Boolean) TRUE 
    * 
     #count (Integer) 9 
    * 
     #attributes (Array, 1 element) 
      o 
      onchange (String, 39 characters) populatemodels(this,'edit-field-model') 

謝謝 - 馬特

回答

0

我想我有一個突破。

CCK/options_widgets.module optionwidgets_select_process($元,$編輯,& $ form_state,$形式){

此外,在我的form_alter代碼,我加入

drupal_add_js('網站/所有/模塊/adaptive/adaptive.js');

其保持populatemodels腳本

,使得它通過我已經改裝成這個代碼屬性用於下一步

$element[$field_key] = array(
    '#type' => 'select', 
    '#title' => $element['#title'], 
    '#description' => $element['#description'], 
    '#required' => isset($element['#required']) ? $element['#required'] : $field['required'], 
    '#multiple' => isset($element['#multiple']) ? $element['#multiple'] : $field['multiple'], 
    '#options' => $options, 
    '#default_value' => isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : NULL, 
    >>> '#attributes' => isset($element['#attributes']) ? $element['#attributes'] : NULL, << 
); 

通過添加 '#attributes'=> isset($元素['#屬性'])? $ element ['#attributes']:NULL,onchange現在出現在呈現的代碼中。

+0

標記爲接受答案,然後? – 2010-01-29 21:13:57

+0

當時它不會讓我這樣做 – Matt 2010-02-04 08:29:12