Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][ZF]Problem z formularzem
Forum PHP.pl > Forum > Przedszkole
sweter
Witam,
mam takki formularz jak poniżej:
  1. public function init(){
  2. $this->addElement('file', 'uploadFile', array(
  3. 'destination' => '../public/images/tmp_user/1/first/',
  4. 'validators' => array(
  5. array('count', false, 1),
  6. array('size', false, 1024000)
  7. ),
  8. 'label' => 'Wyślij plik:'
  9. ));
  10.  
  11. $this->addElement('submit', 'submit', array(
  12. 'label' => 'Wyślij'
  13. ));
  14.  
  15. $this->setEnctype('multipart/form-data');
  16. $this->setAttrib('id', 'formularz');
  17. $this->setAction('/action/addphoto/?upload=1');
  18. }

a tak wygląda walidacja:
  1. // $uploadForm to obiekt formularza
  2. if ($this->_request->isPost()) {
  3. if (!$uploadForm->isValid($this->_request->getPost())) { // Próba walidacji formularza
  4. // sformatowanie komunikatu tak aby zawierał informacje o błędach
  5. $messages = implode('<br />', $uploadForm->uploadFile->getMessages());
  6. $information = 'Błąd podczas sprawdzania poprawności formularza. <br />'
  7. . '<em>'.$messages.'</em>gg';
  8. $tab['stan'] = 0;
  9. } elseif (!$uploadForm->uploadFile->isUploaded()) { // Czy cokolwiek zostało wysłane?
  10. $information = 'Nie wybrano pliku do wysłania.';
  11. $tab['stan'] = 0;
  12. } elseif (!$uploadForm->uploadFile->receive()) { // Odbiór pliku
  13. $information = 'Błąd podczas odbierania pliku.';
  14. $tab['stan'] = 0;
  15. } else { // Sukces
  16. $information = 'Plik ' . $uploadForm->uploadFile->getFileName()
  17. . ' został poprawnie wysłany.';
  18. $tab['stan'] = 1;
  19. }
  20. echo $information;
  21. }

Proszę, sprawdźcie ten kod, bo cały czas zwraca mi "Błąd podczas sprawdzania poprawności formularza" sad.gif
Spójrzcie na to świeższym okiem, bo ja już tracę cierpliwość.
Z góry dziękuję smile.gif
ViX
Nie żebym czepiał się, ale jest to istny zamach na MVC, jak wiemy widoki (kod) HTML powinniśmy możliwie oddzielić od PHP...
Moim zdaniem bezsensowne jest tworzenie w ten sposób formularzy. Wydajniejszą stronę napiszesz nie używając Zend_Form, a jedynie HTML w widokach.
darko
Nie wiem czy cokolwiek wniosę do tematu, ale przyznam szczerze, że akurat do przesyłania plików Zend_Form jest w moim odczuciu dość kulawy, zwłaszcza w obsłudze statusu wysyłki (jakoś nie zawsze to poprawnie działało u mnie).
Nigdzie nie widzę wywołania metody receive() która służy do odebrania wysłanego pliku i przeniesienia do pożądanej lokalizacji, zresztą jest manual
// edit
zajrzyj do linka, którego podałem, są jeszcze następujące użyteczne metody:
setDestination
isUploaded
isReceived

Czyli kolejność powinna być taka:
(...)
setDestination(/sciezka_docelowa/) // to jeszcze w formularzu
(...)
dalej już sprawdzamy:
$form->isUploaded();
(...)
$form->receive();
sweter
(już nieważne - miałem chyba lekką przymułę, bo nie wiedziałem co piszę smile.gif)
darko
Co było nie tak z tym formularzem? Wrzuć dla potomnych.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.