Добрый вечер. Я меня такое дело: создаю форму, на ней всего 1 текстовое поле. При нажатии на кнопку "Добавить", должно происходить добавление в базу и вывод сообшения об успехе. Но не происходит ровным счетом ничего. Вот код:
Это схема.
<?php
$schema['archive'] = array(
'description' => 'Table of tasks',
'fields' => array(
'task_id' => array(
'type' => 'serial',
'unsigned' => true,
'not null' => true,
'description' => t('ID задания'),
),
'name' => array(
'type' => 'varchar',
'length' => 255,
'not null' => true,
'description' => t('Имя задачи.'),
),
),
'primary key' => array('task_id'),
);
}
?>
А вот уже код формы и попытка вставки в базу.
<?php
function archive_form($form, &$form_state) {
$form['name'] = array (
'#type' => 'textfield',
'#title' => 'Название задачи',
'#size' => 64,
'#maxlength' => 64,
'#required' => true,
'#description' => t('Введите название задачи'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Добавить'),
);
return $form;
function
archive_submit($form, &$form_state) {
$id = db_insert('archive')
->fields(array(
'name' => $form_state['values']['name'],
))
->execute();
drupal_set_message(t('Задача успешно добавлена в базу'));
}
?>
Как ни бился, не могу найти решения проблемы. Очень прошу помочь.) Так то я только начал изучать написание собственных модулей, так что прошу сильно не пинать.)
Комментарии
После пробега глазами: если Вы пишете
function archive_form
значит сабмит-функция будет
function archive_form_submit
а не
function archive_submit
Постоянно вижу эту ошибку у новичков. Form API почитайте же
Надо бы закрыть функцию еще archive_form на }, тоже помогает
Да, именно form там и не хватало.) А функция закрыта, эт я уже тут забыл закрыть.) Большое спасибо вам.