Всем привет. У меня имеется несколько страничек прописанных в 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 - так же опишите.
Комментарии
добавь $form['action'] в '#type' => 'submit',
Простейшие варианты:
$form['#action']
drupal_goto($url)
А как
Как правильно прописывается $form['#action']? Если можно в коде сразу.
Сработал вариант
Так как $form['#action'] обходит валидацию формочки. А это мне не нужно.
Если есть ещё предложения - с радостью послушаю.
как вариант, организовать пошаговую форму
А пример можно?
https://drupal.org/project/examples
папка form_example
вы можете подцепить в _form_validate()
Спасибо) просмотрю)