Изменение элементов формы при валидации

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

Аватар пользователя sysdimon sysdimon 26 апреля 2013 в 13:23

Добрый день.

Создаю форму:

<?php
function order_form($form, &$form_state)
{
    
$form = array();
    
$form['name'] = array(
        
'#title' => 'Ваше имя',
        
'#type' => 'textfield',
    );
    
$form['button'] = array(
        
'#value' => 'Отправить',
        
'#type' => 'submit',
    );
    
    return (
$form);
}
?>

Добавляю валидацию.

<?php
function order_form_validate($form, &$form_state)
{
    if (
$form_state['values']['name'] == '')
    {
        
        
form_set_error('name');
        
    }
    
}
?>

Вывод формы из модуля:

<?phpfunction module_preprocess_page(&$vars){
    $vars['order_form'] = drupal_get_form('order_form');
}?>

Нужно, чтобы при валидации к полю добавлялся суффикс.

Пробовал так:

<?php
function order_form_validate($form, &$form_state)
{
    if (
$form_state['values']['name'] == '')
    {
        
$form['name']['#suffix'] = '<div>Ошибка<div/>'
        
form_set_error('name');
        
    }
    
}
?>

Не, работает.

Комментарии

Аватар пользователя sysdimon sysdimon 26 апреля 2013 в 13:38

Плюс вопрос. Как сделать так, чтобы после сабмита вместо формы показывалось сообщение, то есть, сама форма не отрисовывалась?

Аватар пользователя constcost constcost 26 апреля 2013 в 15:10

sysdimon wrote:
Плюс вопрос. Как сделать так, чтобы после сабмита вместо формы показывалось сообщение, то есть, сама форма не отрисовывалась?

$form_state['redirect'] ?

Аватар пользователя gorr gorr 27 апреля 2013 в 17:06

А по ссылке форму передать?
<?php
function order_form_validate(&$form, &$form_state)
{
if ($form_state['values']['name'] == '')
{
$form['name']['#suffix'] = '

Ошибка
'
form_set_error('name');

}

}
?>