Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]tworzenie formularza
Forum PHP.pl > Forum > Przedszkole
skabszo
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;/
nospor
Do tego idealnie nada sie FOR a nie nowa klasa winksmiley.jpg
http://pl.php.net/manual/pl/control-structures.for.php
emtiej
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).
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.