1

我在 .module 文件中创建了一个这样的表单:

function form_registration_form($form, &$form_state) {
$form['registration']['email'] = array(
'#title' => t('EMAIL ADDRESS'),
'#type' => 'textfield',
    '#required' => TRUE,
    '#size' => 44,
    '#maxlength' => '80',
    '#rules' => array(
        'email', 
        'length[10, 50]',
    )
  );
  $form['registration']['password'] = array(
    '#title' => t('PASSWORD'),
    '#type' => 'password',
    '#required' => TRUE,
    '#size' => 44,
    '#maxlength' => '80',
  );
  $form['registration']['submit'] = array(
    '#value' => 'SIGN IN',
    '#type' => 'submit',
    '#submit' => array('form_registration_handler')
    );
  return $form;
}
function form_registration_handler($form, &$form_state){
    $email = $form_state['registration']['email'];
        drupal_set_message($email);
}

然而,drupal 总是说“未定义的索引:在 form_registration_form_submit() 中注册”。我真的不知道我在这里做错了什么。任何建议对我来说都会非常有用。非常感谢。

4

2 回答 2

1

您始终可以启用Devel模块和 dsm($form) 提交功能。例如:

function form_registration_handler($form, &$form_state){
    dsm($form);
    dsm($form_state);
}

通过 DSMing,您可以轻松找到要在提交函数中使用的值。

于 2013-05-28T21:33:10.907 回答
0

将此行添加到 form_registration_form 函数的头部:

$form = array();
$form['registration'] = array();

出现该通知是因为 $form['registration'] 未声明为 void 数组。

于 2013-05-24T10:13:07.433 回答