Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: apel o przykład formularza
Forum PHP.pl > Forum > PHP
jarod20
Witam,
Mam prośbę do bardziej zaawansowanych kolegów.

Czy byłby ktoś tak dobry i prawy i pokazał mi/nam, wszystkim początkującym i potrzebującym, prosty przykład formularza, zawierającego pola typu radiobutton i checkbox, z danymi(na przykład tekstami przy buttonach) pobieranymi z bazy danych, z zapisem wybranych danych do bazy, i z taką opcją, że gdy nie wybierze się wszystkich pól formularza, a naciśnie przycisk wyślij, to formularz pokarze się jeszcze raz, ale z zaznaczonymi już polami, wcześniej wypełnionymi, i z wyszczególnionymi polami, w których brakowało zaznaczenia.

Taki temat poriuszany był an forum setki razy, ale nie wydaje mi się, by ktoś raz na zawsze go zakończył. W wielu postach można znaleźć zapytania o formularze, ale gdy osoba, która zadawała pytanie, uzyska na nie odpowiedź, temat się urywa.
A może gdzieś w sieci można znaleźć artykuł/tutorial/przykład obrazujący dokładnie (najlepiej z opisem) sposób wykonania takiego formularza.
Robiąc coś, chciałbym to rozumieć, a nie bez sensu przepisywać gotowe skrypty.

Z góry dziękuję w imieniu swoim i wszystkich potrzebujących smile.gif
hawk
Jasne. Podam ci nawet 2 przykłady: WACT i Prado.

Niestety, pewnie nie spełnią twoich oczekiwań, bo z jednej strony nie znajdziesz wszystkiego czego szukasz, a z drugiej strony będą to przykłady bardzo powiązane z całym frameworkiem.

I tutaj jest pies pogrzebany - można znaleźć przykłady rozwiązań, ale i tak sprowadzi się to do przepisywania kodu. Zbyt obszerny temat. Dostajesz duży framework który ma w temacie zarządzanie formularzami, i używasz go lub nie.

Chociaż dla jednego takiego formularza można się obejść bez rozwiązania systemowego i wyklepać rozwiązanie.
Puciek
Jezu tu niemaiwelkich mecyi ^^, ja dotego doszedlem po rpobach i bledach +_=
Kod
<from method=post action=index.php>
<input type=checkbox name=cbox value=1>Input pierwszy
<input type=checkbox name=cbox value=2>Input drugi
<input type=checkbox name=cbox value=3>Input trzeci
<input type=checkbox name=cbox value=4>Input czwarty
<input type=submit value='GOŁ'></form>

  1. <?php
  2. echo( $_POST['cbox'] );
  3. ?>

Ale teraz ludziom juz probowac sie niechce =_+
Vertical
Na początku trzeba określić plik docelowy (ten, do którego będą przesyłane dane) formularza za pomocą atrybutu action oraz metodę przesyłania danych formularza za pomocą atrybutu method:
- metoda POST = dane przesyłane anonimowo
- metoda GET = dane przesyłane za pomocą adresu strony
przy odczytywaniu danych w pliku *.php ważna jest metoda przesyłania, ponieważ używamy tablicy $_POST jeśli metoda="POST" lub $_GET jeśli metoda="GET"
...zatem zaczynamy:
----------------------
Zawartość pliku index.html:
  1. <form action = "index2.php" method = "POST">
  2. Imie*: <input type = "radiobutton" name = "imie">
  3. <br>Nazwisko*: <input type = "text" name = "nazwisko">
  4. <br><input type = "checkbox" name = "checkbox1">lubi jablka
  5. <br><input type = "checkbox" name = "checkbox2">lubi czeresnie
  6. <br>Miasto:<select name = "select"><option value = "do500000">do 500 000 mieszkancow</option><option value = "powyzej500000">powyzej 500 000 mieszkancow</option></select>
  7. <hr>
  8. <input type = "submit" name = "submit" value = "Wyslij!">
  9. </form>

Zasada działania skryptu index.html:
1. Na początku rozpoczynamy formularz nadając atrybuty action oraz method (linia 1)
2. Następnie generujemy pola, w które użytkownik wpisuje:
-Imię (linia 2)
-Nazwisko (linia 3)
-Czy lubi jabłka smile.gif (linia 4)
-Czy lubi czereśnie smile.gif (linia 5)
-Liczbę ludności w którym mieszka (linia 6
następnie tworzymy przycisk submit ("wyślij", linia 8)
* - oznacza pola formularza, które muszą być wypełnione, czyli Imię i Nazwisko.
3. Na końcu zakańczamy formularz
--------------
Następnie tworzymy plik o nazwie index2.php, o następującej treści:
  1. <?php
  2. if( $_POST[&#092;"imie\"] == \"\")
  3. {
  4. echo(&#092;"Wypełnij pole <b>Imie</b> !n\");
  5. } elseif ( $_POST[&#092;"nazwisko\"] == \"\")
  6. {
  7. echo(&#092;"Wypełnij pole <b>Nazwisko</b>!n\");
  8. } elseif ( !eregi ( &#092;"^[a-zA-Z]+$\", $_POST[\"imie\"] )
  9. {
  10. echo(&#092;"Imię musi zawierać <b>tylko</b> litery!n\");
  11. } elseif ( !eregi ( &#092;"^[a-zA-Z]+$\", $_POST[\"nazwisko\"] )
  12. {
  13. echo(&#092;"Nazwisko musi zawierać <b>tylko</b> litery!n\");
  14. } else {
  15. echo(&#092;"Oto informacje które nam podałeś:
  16. <br>Imie: <b>$_POST['imie']</b>,
  17. <br>Nazwisko: <b>$_POST['nazwisko']</b>,n&#092;");
  18. if ( $_POST[&#092;"checkbox1\"] == \"on\")
  19. {
  20. echo(&#092;"<br>Lubisz: <b>Jablka</b>n\");
  21. } elseif ( $_POST[&#092;"checkbox2\"] == \"on\")
  22. {
  23. echo(&#092;"<br>Lubisz: <b>Czeresnie</b>n\");
  24. }
  25. echo(&#092;"<br>Mieszkasz w mieście <b>$_POST['select']</b>n\");
  26. }
  27. ?>

Zasada działania skryptu index2.php:
1. W liniach 2 - 7 skrypt sprawdza, czy pola imię i nazwisko zostały wypełnione.
2. W liniach 8 - 13 skrypt sprawdza, czy pola imię i nazwisko składają się wyłącznie z liter
3. W linii 15 rozpoczyna się wyświetlanie danych podanych przez użytkownika
4. Od linii 18 do linii 24 skrypt sprawdza co lubi użytkownik (czereśnie czy jabłka)
5. W linii 25 napisana jest ludność miasta, w którym mieszka użytkownik
6. W linii 26 zamykamy warunek

PS. Nie mówcie mi, że się rozpisałem 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.