2010-01-10 72 views
0

我正在處理一個問題,我在鉤住一個字段,設置默認值並隱藏它。問題在於它採用默認值,但只將值的第一個字符提交給數據庫。Drupal 6:使用隱藏字段

//Here is how I'm doing it 
$form['field_sr_account'] = array('#type' => 'hidden', '#value' => '45'); 

我想我的結構化數組的方式有問題,但我似乎無法得到它。我發現了一個帖子,http://drupal.org/node/59660,如果有人找到了解決的第一個字符提交

//Here is the format of the solution to the post - but it's not hidden 
$form['field_sr_account'][0]['#default_value']['value'] = '45'; 

我怎麼能隱藏屬性添加到這一點?

回答

1

答案實際上是分別設置值和隱藏屬性,然後使用以下格式再次在提交處理程序中設置值。

我不知道,如果這一切都需要,我想我也許並不需要將其分配形式改變,但它的作品,所以我打算息事寧人...

$form['#field_sr_account'] = $club; 
    $form['field_sr_account'] = array('#type' => 'hidden','#value' => $club); 
    } 
} 

/*in submit handler, restore the value in the proper format*/ 
$form_state['values']['field_sr_account'] = array('0' => array('value' => $form['#field_sr_account'])); 
1

http://drupal.org/node/257431#comment-2057358

CCK隱藏字段

/** 
* Implementation of hook_form_alter(). 
*/ 
function YourModuleName_form_alter(&$form, $form_state, $form_id) { 
    if (isset($form['type']) && isset($form['#node'])) { 
    ### Make a CCK field becoming a hidden type field. 
    // ### Use this check to match node edit form for a particular content type. 
    if ($form_id === 'YourContentTypeName_node_form') { 
     $form['#after_build'] = array('_test_set_cck_field_to_hidden'); 
    } 
    } 
} 

function _test_set_cck_field_to_hidden($form, &$form_state) { 
    $form['field_NameToBeHidden'][0]['value']['#type'] = 'hidden'; 
    $form['field_NameToBeHidden'][0]['#value']['value'] = 'testValue'; 

    return $form; 
}