Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework]polskie znaki w formularzu
Forum PHP.pl > Forum > PHP > Frameworki
smagul
witam, mam działający formularz, jednak nie mogę nigdzie znaleźć co zrobić, by móc używać polskich liter w formularzach.
Jak do pola które jest wymagane wpiszę polską literkę, to zend wyrzuca komunikat błędu "Value is required and can't be empty", a tego co napisałem nawet nie zapamiętuje.

Metodą prób i błędów doszedłem do wniosku, że winowajcą jest Zend_Filter, zamienia wszystko co ma polskie znaki na nic.

  1. private function getFormularzKontaktowy()
  2. {
  3. $form = new Zend_Form();
  4. $form->setAction("start");
  5. $form->setMethod("post");
  6. $form->setName("e-mail");
  7.  
  8. $pytanie = new Zend_Form_Element_Textarea('pytanie');
  9. $pytanie->setLabel("Twoje pytanie:")
  10. ->setAttrib('rows', 6)
  11. ->setAttrib('cols', 20)
  12. ->setRequired(true)
  13. ->addFilter(new Zend_Filter_HtmlEntities())
  14. ->addFilter(new Zend_Filter_StringTrim())
  15. ->addFilter(new Zend_Filter_StripTags())
  16. ->addValidator(new Zend_Validate_NotEmpty());
  17.  
  18. $telefon = new Zend_Form_Element_Text('telefon');
  19. $telefon->setLabel("Twoj telefon:*")
  20. ->setAllowEmpty(true)
  21. ->addFilter(new Zend_Filter_HtmlEntities())
  22. ->addFilter(new Zend_Filter_StringTrim())
  23. ->addFilter(new Zend_Filter_StripTags());
  24.  
  25. $mail = new Zend_Form_Element_Text('mail');
  26. $mail->setLabel("Twoj e-mail:")
  27. ->setRequired(true)
  28. ->addFilter(new Zend_Filter_StringTrim())
  29. ->addFilter(new Zend_Filter_StripTags())
  30. ->addValidator(new Zend_Validate_EmailAddress())
  31. ->addValidator(new Zend_Validate_NotEmpty());
  32.  
  33. $wyslij = new Zend_Form_Element_Submit("wyslij");
  34. $wyslij->setLabel("Wyslij");
  35.  
  36. $form->addElement($pytanie);
  37. $form->addElement($telefon);
  38. $form->addElement($mail);
  39. $form->addElement($wyslij);
  40.  
  41. return $form;
  42. }


tak wygląda formularz

  1. $form = $this->getFormularzKontaktowy();
  2.  
  3. if($_POST){
  4. if($form->isValid($_POST)){
  5. //tutaj wykonuję dalsze czynnosci
  6. }
  7. }


a tak weryfikacja poprawności.
zend
Po wielu wymagających i wyczerpujących testach stwierdzam iż...tadadadadadada! guitar.gif
  1. $this -> view -> setEncoding('ISO-8859-1');
ta linijka rozwiąże Twoje bolączki, zapewni Ci dostatnie życie i mnóstwo dzieci aarambo.gif

I tak na marginesie
  1. if(count($_POST))
smagul
heh, miałem ustawione to co domyślnie mi się włączyło (czyli CP-1250), przestawiłem na utf-8 i śmiga smile.gif, dziękuję za pomoc winksmiley.jpg
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.