2012-04-10 8 views
4

hook_submitを使用してチェックボックスの状態を保存するにはどうすればよいですか?Drupalのカスタムモジュールからチェックボックスの値を保存するにはどうすればいいですか?

hook_form:

$versionArray = array('ver 1.7.0.0-beta1' => 'ver 1.7.0.0-beta1', 'ver 1.6.2.0' => 'ver 1.6.2.0', 'ver 1.5.1.0' => 'ver 1.5.1.0', 'ver 1.4.2.0' => 'ver 1.4.2.0', 'ver 1.3.3.0' => 'ver 1.3.3.0'); 

$form['mage']['version'] = array(
    '#type' => 'checkboxes', 
    '#title' => t('Select'), 
    '#required' => TRUE, 
    '#options' => $versionArray 
); 

hook_submit:

.... 
$node->field_checkboxes[0]['value'] = $form_state['values']['mage']['version']; 
.... 
node_save($node) 

私は正しく保存すべての私の他のフィールドを持っているが、これらのフィールドは空白のまま。あなたの投稿機能で

おかげ ロバート

答えて

6

は、このことができます...ムハンマドを次のコード

$selected = array(); 
foreach($form_state['values']['version'] as $a => $b) 
{ 
    if((string)$b != "0") 
    { 
     $selected[] = $b; 
    } 
} 
variable_set("var_selected", $selected); 

希望を使用するようにしてください。

+0

[OK]を、まもなくこのにやってみると、あなたは、私が乗ったかを知らせます。おかげで – Robert

+0

あなたの助けを借りて、ありがとう、ありがとう。 – Robert

+0

本当に助けてくれてうれし... - ムハンマド。 –

0

さらにシンプル:

$save_array = array_filter($form_state['values']['mage']['version']); 
    $p=0; 
     foreach ($save_array as $a => $b) { 
      $node->field_checkboxes['und'][$p++]['value'] = $b; 
     } 

... 
node_save($node); 
関連する問題