IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Вопросы по использованию библиотеки PEAR PHP (http://www.imho.ws/showthread.php?t=112884)

iogun 24.12.2006 14:33

Вопросы по использованию библиотеки PEAR PHP
 
Странно что нет такой темы, учитывая что пых 5 уже давно вышел
и первый вопрос...

Пытаюсь использовать HTML_QuickForm, для создания элементов формы, и мне нужно их сгруппировать... в общем вот код

Цитата:

$tfio[] = &HTML_QuickForm::createElement('text', 'tFName', 'Фамилия');
$tfio[] = &HTML_QuickForm::createElement('text', 'tSName', 'Имя');
$tfio[] = &HTML_QuickForm::createElement('text', 'tPatronimic', 'Отчество');

$form->addGroup($tfio, 'tname', '', ', ');
далее я все это отображаю, элементы сгруппированы, но метки у них отсутствуют. Может кто знает как отобразить их?

посмотрел файл default.php, он содержит шаблон отображения для элементов
Цитата:

var $_elementTemplate =
"\n\t<tr>\n\t\t<td align=\"right\" valign=\"top\"><!-- BEGIN required --><span style=\"color: #ff0000\">*</span><!-- END required --><b>{label}</b></td>\n\t\t<td valign=\"top\" align=\"left\"><!-- BEGIN error --><span style=\"color: #f10000\">{error}</span><br /><!-- END error -->\t{element}</td>\n\t</tr>";
этот шаблон используется и при вызове AddGroup и без группировки, но вот почему {label} не отображается при группировке??? :idontnow: :help:

EvroStandart 27.12.2006 15:27

Я эту библиотеку не использовал.
Очень странно массив выглядит. Ты уверен что ему номера элементов прописывать ненужно?

RaZEr 28.12.2006 09:18

Цитата:

Ты уверен что ему номера элементов прописывать ненужно?
PHP сам выдаёт номера, даже если их не указывать.

iogun 29.12.2006 07:47

Все разобрался. Вот рещение. Может кому пригодится?

Цитата:

// Создаем шаблоны для заголовка и для формы

$renderer->setFormTemplate("<form{attributes}>\n<table width=\"450\" border=\"0\" cellpadding=\"3\" cellspacing=\"2\" bgcolor=\"#c5cff2\">\n{content}\n</table>\n</form>");
$renderer->setHeaderTemplate("\t<tr>\n\t\t<td style=\"white-space:nowrap;background:#5959c8;color:#ffc;\" align=\"left\" colspan=\"2\"><b>{header}</b></td>\n\t</tr>");

// Создаем шаблоны для группы и для элементов
$renderer->setGroupTemplate('<table><tr>{content}</tr></table>', 'id');
$renderer->setGroupElementTemplate('<td>{element}<br /><span style="font-size:10px;"><!-- BEGIN required --><span style="color: #f00">* </span><!-- END required --><span style="color:#996;">{label}</span></span></td>', 'id');

$form->addElement('header', '', 'Анкета-резюме кандидата');

// Создаем текстовые элементы и…

$id['firstname'] = &HTML_QuickForm::createElement('text', 'firstname', 'Фамилия', array('size' => 30));
$id['lastname'] = &HTML_QuickForm::createElement('text', 'lastname', 'Имя', array('size' => 30));
$id['patronimic'] = &HTML_QuickForm::createElement('text', 'patronimic', 'Отчество', array('size' => 30));
// … группируем их
$form->addGroup($id, 'id', 'ФИО:', '');

// Устанавливаем требования на элементы
$form->addGroupRule('id', array(
'firstname' => array(
array('Name is required', 'required', null, 'client'),
array('Name is letters only', 'lettersonly', null, 'client')
),
'lastname' => array(
array('Name is required', 'required', null, 'client'),
array('Name is letters only', 'lettersonly', null, 'client')
),
'patronimic' => array(
array('Name is required', 'required', null, 'client'),
array('Name is letters only', 'lettersonly', null, 'client')
)
));

iogun 16.01.2007 17:56

C помощью кода
Цитата:

$buttons[] =& $form->createElement('submit', null, 'Подтвердить');
$buttons[] =& $form->createElement('reset', null, 'Отмена');
$buttons[] =& $form->createElement('checkbox', 'clientSide', null, 'использовать клиентскую часть для валидации', array('checked' => 'checked', 'onclick' => "if (this.checked) {this.form.onsubmit = validate_" . $form->getAttribute('id') . ";} else {this.form.onsubmit = null;}"));
$form->addGroup($buttons, 'btns');
создал три кнопки и сгруппировал их, далее при нажатии на одну из кнопок происходит валидация формы и если все нормально то она замораживается:
Цитата:

if ($form->validate()) {
// Form is validated, then processes the data
$form->freeze();
$form->process('process_data', false);
}
так вот, при заморозке кнопки не замораживатся и остаются активными, как мне их удалить или сделать неактивными?


Часовой пояс GMT +4, время: 19:44.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.