2011-08-01 56 views
0

我已經在Drupal網站上設置了一個多步驟webform,並且我試圖檢查字段並保留在webform的第一頁,如果該字段不符合條件。在webform的第一步中,用戶在文本字段(comp_name)中輸入公司名稱。當用戶下一步按下時,我想檢查輸入的公司名稱是否是節點的標題。 到目前爲止,我有:在多步驟webform上檢查字段和重定向 - Drupal

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

回答

0

使用自定義驗證鉤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.

+0

完美。非常感謝 – Cyril