【问题标题】:check field and redirection on a multistep webform - Drupal检查多步骤网络表单上的字段和重定向 - Drupal
【发布时间】:2011-08-01 11:54:27
【问题描述】:

我在 Drupal 网站上设置了一个多步骤网络表单,我正在尝试检查一个字段,如果该字段不符合条件,我会停留在网络表单的第一页。在网络表单的第一步,用户在文本字段 (comp_name) 中输入公司名称。当用户下一步推送时,我想检查输入的公司名称是否是节点的标题。 到目前为止,我有:

function check_for_company_form_alter(&$form, $form_state, $form_id)
{
if ($form_id == "webform_client_form_2")
{   
    if($form_state['post']['details']['page_num'] == 1){
        $comp_name = $form_state['post']['submitted']['comp_name'];
        $query = "SELECT nid FROM node WHERE title='".$comp_name."'";
        $nidComp= db_result(db_query($query));
        if($nidComp>0){
        echo 'we found node id'.$nidComp;
        }
     else{
          //redirection to page 1 of the multistep form
     }
    }


}
} 

代码运行良好,但我不知道如何重定向到第 1 页。

【问题讨论】:

    标签: drupal drupal-webform form-api


    【解决方案1】:

    使用自定义验证钩子和 form_set_error。

    <?php
    
    ...
    // within hook_form_alter
    $form['#validate'][] = 'check_for_company_validate';
    ...
    
    function check_for_company_validate($form, &$form_state) {
      // Check if the company name ISN'T the title of a node here.
      // If so...
      form_set_error('post][submitted][comp_name', 'Something is not right.');
    }
    
    ?>
    

    hook_form_alter 在表单构建之前触发。听起来你想要 hook_validate 或(也许)hook_submit。此解决方案适用于 Drupal 6。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      相关资源
      最近更新 更多