4

hook_submit を使用してチェックボックスのステータスを保存するにはどうすればよいですか?

フックフォーム:

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

他のすべてのフィールドを正しく保存しましたが、これらのフィールドは空白のままです。

ありがとうロバート

4

2 に答える 2

6

送信機能で、次のコードを使用してみてください

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

これが役に立てば幸いです...ムハンマド。

于 2012-04-11T07:42:43.157 に答える
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);
于 2015-09-02T21:25:33.697 に答える