Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dublowanie formularza
Forum PHP.pl > Forum > PHP > Object-oriented programming
marcio
Witam mam problemik...wiem na czym polega ale juz nie potrafie wymyslec jak obejsc problem...
  1. $builider = new Volta_Form_Builider($tab, true);
  2.  
  3. try
  4. {
  5. $builider -> add_rules('autor', 'autor', array('autor' => 'required'));
  6. $builider -> render = false;
  7. $form = $builider -> create_form();
  8. $view = new Volta_Views('Standard', $form);
  9. print $view;
  10.  
  11.  
  12. if(isset($_POST['submit_form_sbt']))
  13. {
  14. $valid = $builider -> validate();
  15.  
  16. if(empty($valid))
  17. {
  18. if($builider -> save('news', array('id' => 5)))
  19. echo 'zapisano';
  20. else
  21. echo 'blad';
  22. }
  23. else
  24. {
  25. echo($valid);
  26. $view -> set_errors($valid);
  27. print $view;
  28. }
  29. }
  30.  
  31. }
  32. catch(Volta_Form_Builider_Exception $e)
  33. {
  34. print $e;
  35. }
  36. catch(InvalidArgumentException $e)
  37. {
  38. print $e -> getMessage();
  39. }
  40. catch(Exception $e)
  41. {
  42. die($e -> getMessage() . '\n' . $e -> getTraceAsString());
  43. }

Problem polega na tym ze gdy ustawie bledy walidacji do widoku to musze na nowo wyswietlic caly renderowany widok ($view) ale wtedy wyswietla mi sie na nowo formularz czyli w rezultacie mam 2 formularze w czym jeden z bledami...

Jak zrobic tak by bledy "doklejaly" sie do starego juz wyswietlonego widoku?
Musze sie bawic w buforowanie?

edit:
screen -> http://imageshack.us/photo/my-images/43/31839999.png/
ADeM
  1. try
  2. {
  3. $builider -> add_rules('autor', 'autor', array('autor' => 'required'));
  4. $builider -> render = false;
  5. $form = $builider -> create_form();
  6. $view = new Volta_Views('Standard', $form);
  7.  
  8.  
  9. if(isset($_POST['submit_form_sbt']))
  10. {
  11. $valid = $builider -> validate();
  12.  
  13. if(empty($valid))
  14. {
  15. if($builider -> save('news', array('id' => 5)))
  16. echo 'zapisano';
  17. else
  18. echo 'blad';
  19. }
  20. else
  21. {
  22. echo($valid);
  23. $view -> set_errors($valid);
  24. }
  25. }
  26. print $view;
  27. }


Nie zadziała?
marcio
Nie nie zadziala poniewaz najpierw musze wyswietlic formularz dopiero po wcisnieciu sumbit'a formularz sie waliduje i wtedy ma dodac do widoku bledy walidacji...
  1. print $view;

To wyswietla formularz a sam konstruktor konfiguruje tylko nasz widok...

edit:
Moglbym problem ominac o tak:
  1. if(!isset($_GET['action']))
  2. print $view;

Ale to nie rozwiazywuje mojego problemu i wydaje sie takie troche do dupy...
ADeM
Ale przecież pierwsza instrukcja warunkowa sprawdza czy już został kliknięty submit.
Normalnie wyświetlany jest widok, beż żadnych operacji na nim. Po kliknięciu submita wyświetlane są jakieś komunikaty i ewentualnie dodane błędy, po czym widok jest wyświetlany.
marcio
hahaha ale siara ^^ masz racje teraz juz wiem ze po godzinie 2.00 i kilku h kodzenia mozg nie sprzyja warunka...

rotfl!
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.