Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]tworzenie formularza, klasa
skabszo
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 27.08.2004

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


Witam jestem baardzo początkujący w php i chciałbym napisać sobie klasę odpowiadającą za generowanie formularza. W htmlu powinien wyglądać on tak:
  1. <form action="form.class.php" method="post" name="worklog">
  2. <p>monday</p>
  3. <select name="monday_start">
  4. <option>6:00</option>
  5. <option>7:00</option>
  6. <option>8:00</option>
  7. <option>9:00</option>
  8. <option>10:00</option>
  9. <option>11:00</option>
  10. <option>12:00</option>
  11. <option>13:00</option>
  12. <option>14:00</option>
  13. <option>15:00</option>
  14. <option>16:00</option>
  15. <option>17:00</option>
  16. <option>18:00</option>
  17. <option>19:00</option>
  18. <option>20:00</option>
  19. <option>21:00</option>
  20. <option>22:00</option>
  21. <option>OFF</option>
  22. <select name="monday_stop">
  23. <option>6:00</option>
  24. <option>7:00</option>
  25. <option>8:00</option>
  26. <option>9:00</option>
  27. <option>10:00</option>
  28. <option>11:00</option>
  29. <option>12:00</option>
  30. <option>13:00</option>
  31. <option>14:00</option>
  32. <option>15:00</option>
  33. <option>16:00</option>
  34. <option>17:00</option>
  35. <option>18:00</option>
  36. <option>19:00</option>
  37. <option>20:00</option>
  38. <option>21:00</option>
  39. <option>22:00</option>
  40. <option>OFF</option>
  41. <p>tuesday</p>
  42. ...
  43. <p>wednesday</p>
  44. ..
  45. cały tydzień
  46. <input type="submit" name="sendit">
  47. </form>
jak widać w cholere długi ten kod więc dążąc do tego by kod w php był jak najkrótszy rozkminiłem coś takiego tylko wiem że zapewne to źle jest:
  1. <?php
  2. $form = new genForm;
  3. $form->startForm(basename($_SERVER['PHP_SELF']));
  4. $form->newline = false;
  5. $form->textInput('monday','Monday',false,'block required');
  6. $form->startSelect('mondaystart','Start time:',false,'block');
  7. $form->addOption('off','off');
  8. $form->addOption('5:00','5:00');
  9. $form->addOption('6:00','6:00');
  10. $form->addOption('7:00','7:00');
  11. $form->addOption('8:00','8:00');
  12. $form->addOption('9:00','9:00');
  13. $form->addOption('10:00','10:00');
  14. $form->addOption('11:00','11:00');
  15. $form->addOption('12:00','12:00');
  16. $form->addOption('13:00','13:00');
  17. $form->addOption('14:00','14:00');
  18. $form->addOption('15:00','15:00');
  19. $form->addOption('16:00','16:00');
  20. $form->addOption('17:00','17:00');
  21. $form->addOption('18:00','18:00');
  22. $form->addOption('19:00','19:00');
  23. $form->addOption('20:00','20:00');
  24. $form->addOption('21:00','21:00');
  25. $form->addOption('22:00','22:00');
  26. $form->closeSelect();
  27. $form->startSelect('mondaystop','Stop time:',false,'block');
  28. $form->addOption('off','off');
  29. $form->addOption('5:00','5:00');
  30. $form->addOption('6:00','6:00');
  31. $form->addOption('7:00','7:00');
  32. $form->addOption('8:00','8:00');
  33. $form->addOption('9:00','9:00');
  34. $form->addOption('10:00','10:00');
  35. $form->addOption('11:00','11:00');
  36. $form->addOption('12:00','12:00');
  37. $form->addOption('13:00','13:00');
  38. $form->addOption('14:00','14:00');
  39. $form->addOption('15:00','15:00');
  40. $form->addOption('16:00','16:00');
  41. $form->addOption('17:00','17:00');
  42. $form->addOption('18:00','18:00');
  43. $form->addOption('19:00','19:00');
  44. $form->addOption('20:00','20:00');
  45. $form->addOption('21:00','21:00');
  46. $form->addOption('22:00','22:00');
  47. $form->closeSelect();
  48. $form->insertBR();
  49. $form->newline = false;
  50. $form->submitButton();
  51. $form->closeForm();
  52.  
  53. if(!$output = $form->getForm()) { die("error: " . $form->error); }
  54. else { echo $output; }
  55. ?>
tylko nie wiem własnie jak załatwić by nie wypisywać za każdym razem tych addOption tylko hm.. jakąś wewnętrzną klasę jeszcze zrobić? da się tak? bo tego straasznie dużo jest kiedy mam to podzielone na każdy dzień tygodnia;/
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Do tego idealnie nada sie FOR a nie nowa klasa winksmiley.jpg
http://pl.php.net/manual/pl/control-structures.for.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
emtiej
post
Post #3





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


Cytat
dążąc do tego by kod w php był jak najkrótszy


Nie obraź się, ale nie udało ci się to biggrin.gif

Tak jak nospor powiedział for byłoby lepszym rozwiązaniem niż taka klasa, albo jak już się uparłeś na klasę to użyj for właśnie w niej biggrin.gif Żeby skrócić kod php
Powodzenia

ps. funkcję wyświetlającą select skonstruuj tak, żebyś wywoływał ją tylko raz, mianowicie użyj tablic jako argumenów przekazywanych(będą nimi między innymi wartości w options).

Ten post edytował emtiej 9.02.2010, 12:38:44
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 05:22