Страниц.

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

Аватар пользователя Dufi Dufi 12 мая 2013 в 19:41

Добрый вечер. Я меня такое дело: создаю форму, на ней всего 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('Задача успешно добавлена в базу'));
}    
?>

Как ни бился, не могу найти решения проблемы. Очень прошу помочь.) Так то я только начал изучать написание собственных модулей, так что прошу сильно не пинать.)

Комментарии

Аватар пользователя CSoft CSoft 12 мая 2013 в 20:05

После пробега глазами: если Вы пишете

function archive_form

значит сабмит-функция будет

function archive_form_submit

а не

function archive_submit

Постоянно вижу эту ошибку у новичков. Form API почитайте же Smile

Аватар пользователя Dufi Dufi 12 мая 2013 в 20:15

Да, именно form там и не хватало.) А функция закрыта, эт я уже тут забыл закрыть.) Большое спасибо вам.