2012-09-18 100 views
1

我的自定义注册表单模块具有允许新用户选择一个或多个城市的选择字段。在我的搜索中,我没有找到任何可供借鉴的例子。例如,如果要保存的城市关键字是20和53,是否有人有下面的代码应该看起来像'field_city'=>的例子?user_save()具有多个选择字段,如复选框或选择字段

$edit = array(
    'name' => 'tester', 
    'pass' => user_password(), 
    'mail' => '[email protected]', 
    'status' => 0, 
    'init' => '[email protected]', 
    'access' => REQUEST_TIME, 
    'field_city' => , 
    'field_zip_postal_code' => array(LANGUAGE_NONE => array(array('value' => '12345'))), 
    'field_gender' => array(LANGUAGE_NONE => array(array('value' => 'Male'))), 
); 

user_save(drupal_anonymous_user(), $edit); 

回答

1

我想通了这一个自己出去。如果它帮助任何人,对于分类术语引用,列名是'tid',而不是'value',因为它是用于其他字段。我改变了登记代码为以下:

$edit = array(
    'name' => $form_state['step_information'][2]['stored_values']['name'], 
    'pass' => user_password(), 
    'mail' => $form_state['step_information'][2]['stored_values']['email'], 
    'status' => 0, 
    'init' => $form_state['step_information'][2]['stored_values']['email'], 
    'access' => REQUEST_TIME, 
    'field_zip_postal_code' => array(LANGUAGE_NONE => array(array('value' => $form_state['step_information'][3]['stored_values']['postal_code']))), 
    'field_gender' => array(LANGUAGE_NONE => array(array('value' => $form_state['step_information'][3]['stored_values']['gender']))), 
); 

foreach(array_keys($form_state['step_information'][1]['stored_values']['cities']) as $key => $val) { 
    $edit['field_city'][LANGUAGE_NONE][$key] = array('tid' => $val); 
} 

$new_account = user_save(drupal_anonymous_user(), $edit); 

在“的foreach”循环,“$键”是获取存储在“增量”列中的基数(0,1,2 ...)在数据库中,'$ val'是城市的ID。