Вывод ошибки валидации в QF в указанном месте.

zdimon

Новичок
Вывод ошибки валидации в QF в указанном месте.

Помогите новичку в использовании QF.
Каким образом вывести ошибку в заданном месте шаблона формы?
При таком синтаксисе:
$form->addElement('text', 'title', 'title','id="title"');
$form->addRule('title'...
 

zdimon

Новичок
Ошибку на пустое значение формы.
Делаю так
PHP:
$form = new HTML_QuickForm('w', 'POST','?action=register',null,' enctype="multipart/form-data"  ');
 $form->addElement('text', 'name', 'name','class="about"');
$form->addRule('name', 'Your name is required', 'required');
 $tpl =& new template;
       $tpl->set_template(MAIN_PATH.'/app/views/register/form_registration.tpl.htm');
       $renderer =& new HTML_QuickForm_Renderer_ArraySmarty($tpl);
      $renderer->setErrorTemplate(
   '{if $error}
        <font color="orange" size="1">{$error}</font><br />
    {/if}{$html}'
    );
       $form->accept($renderer);
       $tpl->assign('form_data', $renderer->toArray());
        if ($form->validate())
       {
	      $form->freeze();
        }
return $tpl->get_template_contents();
И в шаблоне Smarty вывод

{$form_data.errors.name}
как и
{$form_data.name.html}
при незаполненном поле ошибки не выводит.
 

zerkms

TDD infected
Команда форума
ты сначала рендеришь данные в массив, потом запускаешь форму на валидацию
когда программируешь, нужно хоть чуть-чуть смотреть, что ты пишешь
 

zdimon

Новичок
попробовал так
PHP:
 $form->accept($renderer);
        if ($form->validate())

	    {
	      $form->freeze();

         return 'GO Form registration';
		}
       $tpl->assign('form_data', $renderer->toArray());
Все вроде делаю по примеру PEAR.
Помогите разобраться.

-~{}~ 05.06.07 18:08:

А при вставке $form->validate() еще выше по коду выдает
Call to undefined function: _compile_source()

-~{}~ 05.06.07 18:17:

Разобрался, спасибо, вопрос закрыт.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: zdimon
Все вроде делаю по примеру PEAR.
Врать нехорошо, примеров "сначала выводим форму, а уже потом её проверяем" у нас там нету...
 
Сверху