将默认值设置为输入字段drupal 7

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将默认值设置为输入字段drupal 7相关的知识,希望对你有一定的参考价值。

我开始了一个使用实体注册的项目。经过身份验证的用户可以为他和其他人注册活动。我在帐户创建中设置了一些额外的字段(名称和姓氏)。

我还为注册活动设置了姓名。我想避免一个身份验证的用户填写两次具有相同信息的表单。

为此,我创建了一个带钩的模块,我已经能够检索用户信息。

function mymodule_form_alter(&$form, $form_state, $form_id)  {
    // retrieve name & surname 
    global $user;
    $user_fields = user_load($user->uid);
    $name = $user_fields->field_user_name['und']['0']['value'];
    $surname = $user_fields->field_user_surname['und']['0']['value'];

    // check the form_id 
    if($form_id=='registration_form'){
        $form['field_new_name']= array('#default_value' => $name);
        $form['field_new_surname']= array('#default_value' => $surname);
        // $form['field_new_name']['#value'] = $name;
        // $form['field_new_name']['widget'][0]['value']['#default_value'] = "joe";
    }
}

我成功检索数据,但我无法设置输入以在输入文本字段中显示此值...

我还有一个选择菜单来定义谁在注册:

<select id="edit-who-is-registering" name="who_is_registering" class="form-select required">
    <option value="" selected="selected">- Select -</option>
    <option value="registration_registrant_type_me">Myself</option>
    <option value="registration_registrant_type_user">Other account</option>
    <option value="registration_registrant_type_anon">Other person</option>
</select>

在这里我不知道如何测试select输入在我尝试创建的钩子中是否具有值“registration_registrant_type_me”。理想情况下,我想隐藏名称和姓氏字段与设置值...

答案

获取用户信息:

$user_fields = user_load($user->uid);
$name = $user_fields->field_user_name['und']['0']['value'];
$surname = $user_fields->field_user_name['und']['0']['value'];

然后在字段中显示值(我是由kint保存的):

$form['field_new_name']['und'][0]['value']['#default_value'] = $name;
$form['field_new_surname']['und'][0]['value']['#default_value'] = $surname;

以上是关于将默认值设置为输入字段drupal 7的主要内容,如果未能解决你的问题,请参考以下文章

为块中的公开字段设置值(在 Drupal 中)?

Drupal 6 视图 2:PHP 片段

如果链接字段的标题值在 drupal 7 视图中为空,如何隐藏标题?

为 Drupal 视图中的公开项目提供预定义的选项列表?

如何将表字段的默认值设置为 0.00?

Drupal 7 node_save在cron期间不保存计算字段