2014-09-25 63 views
0

我检索内容类型与下面的代码如何插入到数据库Drupal的自定义字段

$form['ct'] = array(
    '#type' => 'checkboxes', 
    '#options' => node_type_get_names(), 
    '#title' => t('Hangi tür içerikler hakkında bilgi almak istersiniz?'), 
); 

,它提供了以下输出

http://i.stack.imgur.com/TOfS6.png

当我按下创建新帐号按钮,POST阵列是这样的:

http://i.stack.imgur.com/BtxhC.png

我的问题是我如何插入数据库这些值和阅读?

回答

0

有两种方式保存这些数据并将其与用户ID($ user-> uid)相关联。

  1. 为'admin/config/people/accounts/fields'中的用户添加一个新字段。假定新的字段名称是'ct',它是一个列表类型字段。在hook form_alter中,您可以将此选项分配给'ct'。 Drupal会负责保存数据。

  2. 您可以创建单独的表来保留此信息并在钩子hook_user_update中使用db_insert函数。要检索这些信息,您需要在hook_user_load中使用db_query。

+0

对于第一个解决方案,我从Admin Panel中添加了ct,但我不知道如何分配。我创建了form_alter函数,我需要写什么? – 2014-09-26 08:09:35

+0

在form_alter中加入: $ form ['#submit'] [] =“function_to_submit_data_in_database”;并将您的逻辑添加到函数名称“function_to_submit_data_in_database”。确保您的函数在默认提交处理程序之前首先执行。 – 2014-09-26 14:08:30

+0

'函数MY_MODULE_form_alter(&$形式,&$ form_state,$ form_id){ 开关($ form_id){ 情况下 'user_profile_form': $形式[ 'field_ct'] [ 'UND'] [ '#选项'] = node_type_get_names(); 休息; } }' – 2014-09-28 15:43:12

相关问题