2013-05-23 5 views
1

Я создаю форму, как это в файл .module:Drupal 7 форма состояние не определено индекс

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); 
} 

Однако друпал всегда говорят, что "Undefined индекс: регистрация в form_registration_form_submit()". Я действительно не знаю, что я делаю неправильно здесь. Любые предложения будут очень полезны для меня. Большое спасибо.

+0

Хорошо, я выясняю, что я делаю неправильно здесь. Просто измените код следующим образом: function form_registration_handler ($ form, & $ form_state) { $ email = $ form_state ['values'] ['email']; drupal_set_message ($ email); } Evething работает плавно: D – themyth92

ответ

0

Добавить эти строки в голову вашей функции form_registration_form:

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

Уведомления появится becuse $ формы [ «регистрации»] не объявлен как массив недействительного.

1

Вы всегда можете включить модуль Devel и функцию dsm ($ form) submit. Например:

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

С помощью DSMing вы можете легко найти значение, которое хотите использовать в своей функции отправки.

+0

Да, я использую модули API Form, и у него есть «#rules», как это в Drupal Form. Anw, спасибо за ответ – themyth92

+0

Я стою исправленный, спасибо! – inertialmedia

Смежные вопросы