Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]klasa tworzenia forma - jak ulepszyć
Forum PHP.pl > Forum > Przedszkole
robos85
To moja pierwsza klasa więc nie oczekuję pozytywnych opinii:
  1. <?php
  2. class Form{
  3. public $HTML;
  4.  
  5. public function start($action,$method,$rest=array()){
  6. $code="\n<form action=\"".$action."\" method=\"".$method."\"";
  7. if(!empty($rest)){
  8. foreach($rest as $att=>$value){
  9. $code.= ' '.$att.'="'.$value.'"';
  10. }
  11. }
  12. $code.=">";
  13. $this->HTML=$code;
  14. return $code;
  15. }
  16.  
  17. public function end(){
  18. $code="</form>\n";
  19. $this->HTML.=$code;
  20. return $code;
  21. }
  22.  
  23. public function input($type,$name,$val=NULL,$rest=array()){
  24. $code="<input type=\"".$type."\" name=\"".$name."\"";
  25. if(!empty($val)){
  26. $code.=" value=\"".$val."\"";
  27. }
  28. if(!empty($rest)){
  29. foreach($rest as $att=>$value){
  30. $code.= ' '.$att.'="'.$value.'"';
  31. }
  32. }
  33. $code.=" />\n";
  34. $this->HTML.=$code;
  35. return $code;
  36. }
  37.  
  38. public function textarea($name,$val=NULL,$rest=array()){
  39. $code="<textarea name=\"".$name."\"";
  40. if(!empty($rest)){
  41. foreach($rest as $att=>$value){
  42. $code.= ' '.$att.'="'.$value.'"';
  43. }
  44. }
  45. $code.=">";
  46. if(!empty($val)){
  47. $code.=$val;
  48. }
  49. $code.="</textarea>\n";
  50. $this->HTML.=$code;
  51. return $code;
  52. }
  53.  
  54. public function select($name,$rest=array(),$options=array()){
  55. $code="<select name=\"".$name."\"";
  56. if(!empty($rest)){
  57. foreach($rest as $att=>$value){
  58. $code.= ' '.$att.'="'.$value.'"';
  59. }
  60. }
  61. $code.=">\n";
  62. if(!empty($options)){
  63. foreach($options as $value=>$att){
  64. $code.= "<option value=\"".$value."\">".$att."</option>";
  65. }
  66. }
  67. $code.="</select>\n";
  68. $this->HTML.=$code;
  69. return $code;
  70. }
  71. }
  72. ?>

Przykładowe użycie:
  1. <?php
  2. $form=new Form();
  3. echo $form->start('index.php','post');
  4. echo $form->select('select',array('id'=>'1'),array('1'=>'pierwsza')).'<br />';
  5. echo $form->input('submit','ok','Wyślij');
  6. echo $form->end();
  7. ?>


Jak ulepszyć tą klasę, aby mozna było dodawać w select dla konkretnego pola selected, dla chceckboxa - checked itp..
Potrzebne mi to do zaznaczania rzeczy przy wypełnianiu formów przez usera oraz przy edycji
ayeo
Każde pole może być obiektem. Np obiekt SELECT miałby metodę addOption. Obiektów (Select, Checkbox) nie tworzyłbyś ręcznie, robiłaby to główna klasa formularza. Taki przykład tylko w sumie winksmiley.jpg

Pozdrawiam!
robos85
głównie chodzi mi o możliwość dodania opcji selected, checked itp.. bo jest mi potrzebne
ayeo
Możesz dodać opcjonalny parametr do funckji, który domyślnie będzie false, ale to nie ma nic wspólnego z OPP winksmiley.jpg

Pozdrawiam!
robos85
W obiektówce jestem raczej nowy;) jeżeli można, prosiłbym o jakiś kawałek kodu, który by mi to zobrazował.

Dzieki

Jakaś pomoc?smile.gif
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.