<?php
function inbox_page($nid) {
return drupal_get_form('my_module_my_form');
}
function
my_module_my_form($form_state) {
$form['#action'] = "";
$form['name']['middle'] = array(
'#type' => 'textfield',
'#title' => t('Middle name'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
function
my_module_my_form_submit($form, &$form_state) {
drupal_set_message(t('The form has been submitted.'));
}
?>
Почему в такой конструкции не происходит сабмита?
При чем, если я в my_module_my_form_submit пишу что-то типа drupal_goto('куда-то');, то меня перебрасывает, а вот данные я получить от формы не могу
Комментарии
???
пофигу, комментишь эту строчку все равно тот же эффект.
едиственный "костыль", который приходит на ум, это скрывать одно из полей, делать его обязательным.
В этом случае форма не проходит валидацию и возвращает $_POST, и ее обрабатывать, но это конечно хреновый метод
http://drupaldance.com/blog/10-steps-to-drupal-forms
дык в том то и дело, что беру пример оттуда и ничего не работает
вот там есть в комментах, короткий пример, его полностью копирую и ничег оне происходит
куда копируете? выложите полный листинг
<?php
}
//$form['#action'] = "";
$form['name']['caption'] = array(
// $Id$
/**
* file
* Tag List
*/
/**
function inbox_menu()* Реализация hook_menu()
*/
{
$items['inbox/send'] = array(
'title' => 'Инбокс', // заголовок страницы
'page callback' => 'inbox_page', // функция, которая будет генерировать контент страницы (список тегов)
'type' => MENU_CALLBACK,
'access arguments' => array('access content'), // страницу смогут читать пользователи с правами на чтение нод
);
$items['inbox'] = array(
'title' => 'Инбокс', // заголовок страницы
'page callback' => 'inbox_list', // функция, которая будет генерировать контент страницы (список тегов)
'type' => MENU_CALLBACK,
'access arguments' => array('access content'), // страницу смогут читать пользователи с правами на чтение нод
);
return $items;
} /**
* menu callback
*/
function inbox_page($nid) {
global $user;
$output = '';
if($user->uid) {
return drupal_get_form('inbox_form');
} else {
// форма логина
return $output;
}
function
inbox_form($form_state) {'#type' => 'textfield',
'#title' => t('Заголовок'),
'#required' => TRUE,
'#maxlength' => 255,
);
$form['name']['text'] = array(
'#type' => 'textarea',
'#title' => t('Текст'),
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
function
inbox_form_validate($form, &$form_state) {print_r($form_state);
}
function
inbox_form_submit($form, &$form_state) {drupal_set_message(t('The form has been submitted.'));
}?>
убрал отсюда часть кода, который отвечает за другую страницу
и в чём проблема то?
Спасибо, но загвоздка в том, не вижу я этой надписи
и в итоге могу только в слепую отладить...
кстати, раз уж помогаете ) не подскажете как на textarea навесить визивик?
ставьте чистый друпал, ставьте свой модуль, проверяйте, всё рабочее
http://drupal.org/project/ckeditor
Спасибо! буду разбиратся, пока прикрыл это дело костылем )