[РЕШЕНО] Обработчик SUBMIT. Как перейти по кнопке на другую страницу?

Главные вкладки

Аватар пользователя Fenixeales Fenixeales 31 марта 2014 в 16:28

Всем привет. У меня имеется несколько страничек прописанных в hook_menu. Мне нужно реализовать переходы между ними. Сперва выбрать элементы на первой страничке, потом нажать на кнопку и оказаться на следующей. Чтобы было понятнее - аналог прохождения теста.
Но как правильно после работы с первой страницей перейти на вторую??
Вот мой код hook_menu:

<?php
function taro_test_menu() {
   global 
$user;
   
$items = array();
   
/*Рабочая страница*/
   
$items['taro-test-page'] = array(
    
'title' => t('Добро пожаловать в тест по определению профессиональных качеств, !user !', array('!user' => $user->name)),
    
'page callback' => 'drupal_get_form',
    
'page arguments' => array('taro_test_page_form'),
    
'access callback' => TRUE,
  );
  
/*Страница результата*/
    
$items['taro-test-page/result'] = array(
    
'title' => t('Результат вашего теста, !user !', array('!user' => $user->name)),
    
'page callback' => 'drupal_get_form',
    
'page arguments' => array('result_page_form'),
    
'access callback' => TRUE,
  );
  
/*Настройки теста*/
   
$items['admin/config/taro_test'] = array(
    
'title' => 'Меню теста Таро',
    
'description' => 'Настройка параметров для теста.',
    
'page callback' => 'drupal_get_form',
    
'access callback' => TRUE,
    
'page arguments' => array('taro_test_settings_form'),
    
'access arguments' => array('Taro test settings access'),
    
'file' => 'taro_test.settings.inc',
  );
  
  return 
$items;
}
?>

А вот мой код формочки taro_test_page_form:

<?php
function taro_test_page_form($form$form_state) {
    
$form = array();
/*....................
Куча разного кода
....................*/
$form['submit_test'] = array(
 
'#type' => 'submit',
 
'#value' => t('Закончить тест'),
 
'#weight' => 15,        
);
        
    return 
$form;
}

function 

taro_test_page_form_submit($form$form_state) {
    
/*Что тут написать?*/
}
?>

И теперь вопрос. Как правильно прописать обработчик нажатия кнопки чтобы при нажатии перешло мне на страницу taro-test-page/result ?
Если есть у меня ошибки в hook_menu - так же опишите.

Комментарии

Аватар пользователя Fenixeales Fenixeales 31 марта 2014 в 17:37

А как

"orion76" wrote:

Простейшие варианты:
$form['#action']
drupal_goto($url)

Как правильно прописывается $form['#action']? Если можно в коде сразу.

Аватар пользователя Fenixeales Fenixeales 31 марта 2014 в 17:45

Сработал вариант

"orion76" wrote:
drupal_goto($url)

Так как $form['#action'] обходит валидацию формочки. А это мне не нужно.
Если есть ещё предложения - с радостью послушаю.

Аватар пользователя voviko voviko 31 марта 2014 в 20:09

"Fenixeales" wrote:
Так как $form['#action'] обходит валидацию формочки. А это мне не нужно.
Если есть ещё предложения - с радостью послушаю.

вы можете подцепить в _form_validate()