X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Проблема с отображением формы
qeye
qeye
Topic Starter сообщение 13.9.2011, 11:40; Ответить: qeye
Сообщение #1


Есть одна проблемка. В моем проекте есть форма отправки багов. Написана она не до конца, но на текущем этапе работы она должна нормально генериться, но этого не происходит.
Пытаюсь вывести ее в окне браузера - чистый лист (ничего не отображается).

Итак, что я имею. Форму создаю через класс (extends Zend_Form).

1. Само определение формы (в папке forms у меня лежит файл BugReportForm.php). Его листинг:
[PHP]<?php
class Form_BugReportForm extends Zend_Form
{
public function init(){
// add element: author textbox
$author = $this->createElement('text', 'author');
$author->setLabel('Enter your name:');
$author->setRequired(TRUE);
$author->setAttrib('size',30);
$this->addElement($author);

// add element: email textbox
$email = $this->createElement('text', 'email');
$email->setLabel('Your email address:');
$email->setRequired(TRUE);
$email->addValidator(new Zend_Validate_EmailAddress());
$email->addFilters(array(
new Zend_Filter_StringTrim(),
new Zend_FilterStringToLower()
));
$email->setAttrib('size',40);
$this->addElement($email);

// add element: date textbox
$date = $this->createElement('text', 'date');
$date->setLabel('Date the issue occurred (mm-dd-yyyy):');
$date->setRequired(TRUE);
$date->addValidator(new Zend_Validate_Date('MM-DD-YYYY'));
$date->setAttrib('size',20);
$this->addElement($date);

// add element: URL textbox
$url = $this->createElement('text', 'url');
$url->setLabel('Issue URL:');
$url->setRequired(TRUE);
$url->setAttrib('size',50);
$this->addElement($url);

// add element: description text area
$description = $this->createElement('textarea', 'description');
$description->setLabel('Issue description:');
$description->setRequired(TRUE);
$description->setAttrib('cols',50);
$description->setAttrib('rows',4);
$this->addElement($description);

// add element: priority select box
$priority = $this->createElement('select', 'priority');
$priority->setLabel('Issue priority:');
$priority->setRequired(TRUE);
$priority->addMultiOptions(array(
'low' => 'Low',
'med' => 'Medium',
'high' => 'High'
));
$this->addElement($priority);

// add element: status select box
$status = $this->createElement('select', 'status');
$status->setLabel('Current status:');
$status->setRequired(TRUE);
$status->addMiltiOption('new', 'New');
$status->addMiltiOption('in_progress', 'In Progress');
$status->addMiltiOption('resolved', 'Resolved');
$this->addElement($status);

// add element: submit button
$this->addElement('submit', 'submit', array('label' => 'Submit'));
}
}
?>[/PHP]

2. В Bootstrap.php выставлена функция _initAutoload. Ее листинг:
[PHP]protected function _initAutoload(){
$autoLoader = Zend_Loader_Autoloader::getInstance();
$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
'basePath' => APPLICATION_PATH,
'namespace' => '',
'resourceTypes' => array(
'form' => array(
'path' => 'forms/',
'namespace' => 'Form_',
)
),
));

return $autoLoader;
} [/PHP]

3. Имеется также контроллер BugController.php
[PHP]public function submitAction()
{
$frmBugReport = new Form_BugReport();
$frmBugReport->setAction('/bug/submit');
$frmBugReport->setMethod('post');
$this->view->form = $frmBugReport;
}[/PHP]

4. В представлении action'a submit (submit.phtml) я пытаюсь выводить форму:
[PHP]<h2>Отправка bug-отчета</h2>
<p>Для отправки bug-отчета, пожалуйста, заполните форму:</p>
<?php
echo $this->form->render();
?>[/PHP]

Но ничего не происходит. Девственный лист в окне браузера уже начинает напрягать. В чем я лопухнулся?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
qeye
qeye
Topic Starter сообщение 13.9.2011, 13:43; Ответить: qeye
Сообщение #2


То, что я могу быть невнимательным если в спешке набираю код, который так и лезет в голову, то последствия непредсказуемы. Вот как в этом случае. Я работаю в NetBeans и чтобы в последующем избежать таких вот проблем ВСЕГО-ТО стоило в application.ini включить отображение ошибок в браузере :o

После этого все стало на свои места:
1. BugReportForm.php
Было (вытянул неверный кусок кода):
[php]// add element: status select box
$status = $this->createElement('select', 'status');
$status->setLabel('Current status:');
$status->setRequired(TRUE);
$status->addMiltiOption('new', 'New');
$status->addMiltiOption('in_progress', 'In Progress');
$status->addMiltiOption('resolved', 'Resolved');
$this->addElement($status);[/php]
Стало:
[php]// add element: status select box
$status = $this->createElement('select', 'status');
$status->setLabel('Current status:');
$status->setRequired(TRUE);
$status->addMultiOption('new', 'New');
$status->addMultiOption('in_progress', 'In Progress');
$status->addMultiOption('resolved', 'Resolved');
$this->addElement($status);[/php]
Станет адекватный человек писать addMiltiOption вместо addMultiOption? ::)

2. Action submit контроллера BugController.php
Здесь можно просто сказать, что я идиот ;D
[php]$frmBugReport = new Form_BugReport();[/php]
Хотя класс у меня носит имя не Form_BugReport, а Form_BugReportForm

После того, как я все эти ляпы в коде исправил, все благополучно заработало :)
Извините, меня дурня :-[ Но лучше самому позже понять свои ошибки. чем не разобраться в них вообще ...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 13.9.2011, 18:02; Ответить: Witu
Сообщение #3


qeye, плохо представляю себе зачем использовать конструктор форм
но в Zend_Application часто сложно найти ошибку если настройки стандартные (варнинги и нотисы отключены)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
qeye
qeye
Topic Starter сообщение 14.9.2011, 9:50; Ответить: qeye
Сообщение #4


но в Zend_Application часто сложно найти ошибку если настройки стандартные (варнинги и нотисы отключены)

Вот поэтому я перед стартом нового проекта сразу выставоляю в application.ini отображение ошибок в браузере :sarcastic:

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыРассылка ваших сообщений в контакт формы!
3 dizaynmaks 1706 18.4.2022, 9:04
автор: dizaynmaks
Открытая тема (нет новых ответов) Проблема с админкой
5 Prok 2337 29.7.2019, 20:04
автор: dvakarandasha
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПроблема с таблицей, которая выводится через скрипт
7 vanchester 1339 15.2.2019, 19:06
автор: Artos_mw
Открытая тема (нет новых ответов) Делаю простые формы заказов с оплатой
прочитал-оформил-оплатил
3 Taylor 2823 13.6.2018, 0:34
автор: Taylor
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПроблема в тегах при сохранении контента
1 Kord18 1426 13.3.2018, 18:19
автор: Evgeniy3200


 



RSS Текстовая версия Сейчас: 23.4.2024, 10:06
Дизайн