添加表格Drupal Error Page

时间:2014-05-09 09:24:37

标签: drupal-7

我正在研究Drupal 7.我想在"错误中显示一个表单!该网站遇到意外错误。请稍后再试。"页。 我已将maintenance-page.tpl.php文件复制到我的主题文件夹中。并在该模板中呈现一个表单。到目前为止,表单正在显示,但是当我提交表单时,drupal没有进入_validate和_submit函数。

这是代码 模板文件

<div class="complaint-form-message">
                <h5>
                    We’re sorry you’re having trouble with myCCS! 
                    Tell us about the error you’ve experienced and we’ll 
                    get right back to you!
                </h5>
            </div>
            <div class="complaint-form">
                <?php echo drupal_render(drupal_get_form('complaint_form_form')); ?>
            </div>

表格功能

function complaint_form_form($form, &$form_state){
$form['name'] = array(
    '#type' => 'textfield',
    '#required' => TRUE,
    '#title' => 'First Name & Last Name',
);

$form['email'] = array(
    '#type' => 'textfield',
    '#required' => TRUE,
    '#title' => 'Email Address',
);

$form['browser'] = array(
    '#type' => 'textfield',
    '#required' => TRUE,
    '#title' => 'What browser you are using?',
);

$form['tell_us_about_error'] = array(
    '#type' => 'textarea',
    '#required' => TRUE,
    '#title' => 'Tell us about error you experienced?',
);

$form['attachment'] = array(
    '#type' => 'file',
    '#title' => 'Attachment',
);

$form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Submit'),
    '#submit' => 'complaint_form_submit',
);


return $form;

}

function complaint_form_validate($form, $form_state){
  echo 'PPPPP<pre>'; print_r($form_state); die;
  $mail = $form_state['values']['submitted_tree']['email'];
  if (!valid_email_address($mail)) 
    form_set_error('[submitted][email_address]', t('The email
    address appears to be invalid.'));
}

function complaint_form_submit($form, $form_state){
  echo 'DDDDD<pre>'; print_r($form_state); die;
  $values = $form_state['values'];

}

1 个答案:

答案 0 :(得分:0)

你的#submit是一个你输入的数组是字符串, 因此,请将提交条目更改为以下内容。 并将$ form ['submit']放入$ form ['actions'] ['submit'];

$form['actions']['submit']=array(
    '#type' => 'submit',
    '#value' => t('Submit'),
    '#submit' => array('complaint_form_submit'),
);
Note: **'#submit' is an array**

添加验证

$form['#validate'][] = 'complaint_form_validate';

注意:'#validify'是一个数组