Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]klasa tworzenia forma - jak ulepszyć
robos85
post
Post #1





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
ayeo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pozdrawiam!
Go to the top of the page
+Quote Post
robos85
post
Post #3





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


głównie chodzi mi o możliwość dodania opcji selected, checked itp.. bo jest mi potrzebne
Go to the top of the page
+Quote Post
ayeo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Możesz dodać opcjonalny parametr do funckji, który domyślnie będzie false, ale to nie ma nic wspólnego z OPP (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pozdrawiam!
Go to the top of the page
+Quote Post
robos85
post
Post #5





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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?(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 10:42