如何保存Drupal中自定义模块的复选框值?

问题描述:

如何使用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) 

我有我的所有其他领域的节能正确,但这些领域保持空白。

感谢 罗伯特

在你提交功能,尝试使用下面的代码

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

希望这有助于...*。

+0

确定将在短期内给一个去,让你知道我是如何得到的。谢谢 – Robert 2012-04-11 23:27:12

+0

得到它的工作与您的帮助,谢谢。 – Robert 2012-05-28 16:25:34

+0

真的很高兴它帮助... - *。 – 2012-05-29 14:15:40

更简单:

$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);