Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]formularz zgloszeniowy
Forum PHP.pl > Forum > Przedszkole
fcppl
Witam

Wiem ze pytanie jest dość smieszne, ale ja juz siedze przy tym caly dzien i stoje w miejscu. Chce zrobic formularz zgloszeniowy z polami

data kursy
termin kursy
imie
tytul zawodowy
adres
tel.
e-mail

i na dole pole do znznaczenia "wyrazam zgode...."

Chciałem zeby przed wysłaniem skrypt mogl sprawdzic poprawnosc wypelnionych pol.

Domyslam się ze jest to łatwe, ale ja jestem na tyle poczatkujacy ze nie daje sobie rady nie mowie juz o tym zeby mi ktos to zrobil, ale chociaz jakies wskazowki/przyklad.

Pozdrawiam i prosze o pomoc.
nospor
Z treści tematu wnioskuję, że coś już próbowałeś napisać. Pokaż więc kod, a my ci wskażemy błędy.
fcppl
Ciezko to okreslic ze cos napisałem tylko testowałem rożne informacje co znalazlem w sieci, ale nic mi z tego nie wyszlo.

ok cos zrobiłem i nawet działa smile.gif, ale mam jeszcze 2 sprawy.

Jak zrobic zeby pod formularzem bylo pole do zaznaczenia "wyrazam zgode na..." (samo pole to zrobic umie ale zeby bez jego zaznaczenia nie dalo sie wysłac formularza)

I sprawa nr 2 jak zrobic ze jezeli ktos nie wypelni jakiegos pola to pokazywał sie komunikat bezposrednio na stronie a nie jak teraz jestem przekierowywany na nowa strone z komunikatem "Wypelnij wszystkie pola formularza!" moze byc tez np w okienku ten komunikat (cos takiego jak tutaj http://wballiance.nazwa.pl/1a.jpg)

oto moj kod

  1. <?php
  2. // sprawdzamy, czy zmienna $submit jest pusta
  3. if (empty($_POST['submit'])) {
  4. // wyświetlamy formularz
  5. echo "<table border=\"0\"><form method=\"post\">
  6. <tr>
  7. <td>Nazwa kursu:</td>
  8. <td><input type=\"text\" name=\"kurs\" style=\"width: 250px\"></td>
  9. </tr>
  10. <td>Termin kursu:</td>
  11. <td><input type=\"text\" name=\"termin\" style=\"width: 250px\"></td>
  12. </tr>
  13. <td>Imię i nazwisko </td>
  14. <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td>
  15. </tr>
  16. <td>Data urodzenia</td>
  17. <td><input type=\"text\" name=\"data\" style=\"width: 250px\"></td>
  18. </tr>
  19. <td>Tytuł zawodowy lub naukowy:</td>
  20. <td><input type=\"text\" name=\"tytul\" style=\"width: 250px\"></td>
  21. </tr>
  22. <td>Adres zamieszkania:</td>
  23. <td><input type=\"text\" name=\"miasto\" style=\"width: 250px\"></td>
  24. </tr>
  25. <td>Tel. kontaktowy</td>
  26. <td><input type=\"text\" name=\"tel\" style=\"width: 250px\"></td>
  27. </tr>
  28. <tr>
  29. <td>Adres e-mail</td>
  30. <td><input type=\"text\" name=\"email\" style=\"width: 250px\"></td>
  31. </tr>
  32. <tr>
  33. <td>&nbsp;</td>
  34. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\">&nbsp;
  35. <input type=\"reset\" value=\"Od nowa\"></td></form>
  36. </tr>
  37. <td>asdasdsad</td>
  38. <td><input type=\"checkbox\" name=\"mailing\" value=\"checked\">asdasdasdasd</td>
  39. </tr>
  40. </table>";
  41. }
  42. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  43. elseif (!empty($_POST['imie']) && !empty($_POST['data']) && !empty($_POST['email'])) {
  44. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  45. // zmienna $message zawiera treść wiadomości
  46. $message = "Nazwa kursu: $_POST[kurs]\nTermin kursu: $_POST[termin]\nImię u nazwisko: $_POST[imie]\nData urodzenia: $_POST[data]\nTytuł zawodowy lub naukowy: $_POST[tytul]\nAdres zamieszkania: $_POST[miasto]\nTel. kontaktowy: $_POST[tel]\nWyrażam: $_POST[maling]\ne-mail: $_POST[email]";
  47. // zmienna $header zawiera przede wszystkim adres zwrotny
  48. $header = "From: $_POST[imie] <$_POST[email]>";
  49. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  50. @mail("xxx@wp.pl","Wiadomosc ze strony WWW","$message","$header")
  51. or die('Nie udało się wysłać wiadomości');
  52. // wyświetlenie komunikatu w przypadku powodzenia
  53. echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  54. }
  55. // lub w przypadku nie wypełnienia formularza do końca
  56. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
  57.  
  58. ?>


Pozdrawiam i dzieki za pomoc
sadistic_son
Aby nie wysylac bez zaznaczonego checkboxa to w linijce 43 dodaj jeszcze do warunku && isset($_POST['mailing']).

Co do nr2 to wcale nie jestes przekierowywany na nowa strone, zostajesz na tej samej ale z inna zawartoscia.
Ale aby osiagnac zamierzony efekt to zrob tak:
kod od linijek 3 do 41 przenies na koniec, czyli po linijce 57. Warunek w 43 zmien z elseif na if i dodaj jeszcze do nawiasu to: && isset($_POST['submit']). Natomiast instrukcje else z linijki 56 zastap tym: if(empty($_POST['imie']) || empty($_POST['data']) || empty($_POST['email'])).
To chyba na tyle.
fcppl
witam,

draze ten temat bo juz siedze przy tym caly dzien. Przesyłam kod php z formularzem jest z nim juz wszystko OK, ale dalej nie potrafie zrobic tego potwierdzenia "wyrazam zgode..."

Proszę o pomoc. wskazowki z powyższego posta niesetety nie dzialaja.

  1. <?php
  2. if ((empty($_POST['kurs']) or empty($_POST['termin']) or empty($_POST['imie']) or empty($_POST['data']) or empty($_POST['tytul']) or empty($_POST['adres']) or empty($_POST['tel']) or empty($_POST['email'])) and !empty($_POST['submit'])) {
  3. // wyświetlamy formularz
  4. echo "<table border='0'><form method='post'>
  5. <tr>
  6. <tr>
  7. <td>Nazwa kursu:</td>
  8. <td><input type='text' name='kurs' style='width: 250px' value='".$_POST['kurs']."'></td>
  9. </tr>
  10. <td>Termin kursu:</td>
  11. <td><input type='text' name='termin' style='width: 250px' value='".$_POST['termin']."'></td>
  12. </tr>
  13. <td>Imię i nazwisko:</td>
  14. <td><input type='text' name='imie' style='width: 250px' value='".$_POST['imie']."'></td>
  15. </tr>
  16. <td>Data urodzenia:</td>
  17. <td><input type='text' name='data' style='width: 250px' value='".$_POST['data']."'></td>
  18. </tr>
  19. <td>Tytuł zawodowy lub naukowy:</td>
  20. <td><input type='text' name='tytul' style='width: 250px' value='".$_POST['tytul']."'></td>
  21. </tr>
  22. <td>Adres zamieszkania:</td>
  23. <td><input type='text' name='adres' style='width: 250px' value='".$_POST['adres']."'></td>
  24. </tr>
  25. <td>Tel. kontaktowy:</td>
  26. <td><input type='text' name='tel' style='width: 250px' value='".$_POST['tel']."'></td>
  27. </tr>
  28. <tr>
  29. <td>Adres e-mail:</td>
  30. <td><input type='text' name='email' style='width: 250px' value='".$_POST['email']."'></td>
  31. </tr>
  32. <tr>
  33. <td>potwierdzenie</td>
  34. <td><input type=\"checkbox\" name=\"mailing\" value=\"checked\">asdasdasdasd</td>
  35. </tr>
  36. <tr>
  37. <td> </td>
  38. <td><input type='submit' name='submit' value='Wyślij'> 
  39. </form>
  40. </tr>
  41. <tr>
  42. <td> </td>
  43. <td>";
  44. // lub w przypadku nie wypełnienia formularza do końca
  45. echo "<span style='color: #FF0000; text-align: center;'>Wypełnij wszystkie pola formularza!</span>";
  46. echo "</td>
  47. </tr>
  48. </table>";
  49. }
  50. elseif (empty($_POST['kurs']) or empty($_POST['termin']) or empty($_POST['imie']) or empty($_POST['data']) or empty($_POST['tytul']) or empty($_POST['adres']) or empty($_POST['tel']) or empty($_POST['email']) and empty($_POST['submit'])) {
  51. // wyświetlamy formularz
  52. echo "<table border='0'><form method='post'>
  53. <tr>
  54. <tr>
  55. <td>Nazwa kursu:</td>
  56. <td><input type='text' name='kurs' style='width: 250px'></td>
  57. </tr>
  58. <td>Termin kursu:</td>
  59. <td><input type='text' name='termin' style='width: 250px'></td>
  60. </tr>
  61. <td>Imię i nazwisko:</td>
  62. <td><input type='text' name='imie' style='width: 250px'></td>
  63. </tr>
  64. <td>Data urodzenia:</td>
  65. <td><input type='text' name='data' style='width: 250px'></td>
  66. </tr>
  67. <td>Tytuł zawodowy lub naukowy:</td>
  68. <td><textarea name=\"tytul\" style=\"width: 250px; height: 60px\"></textarea></td>
  69. </tr>
  70. <td>Adres zamieszkania:</td>
  71. <td><textarea name=\"adres\" style=\"width: 250px; height: 60px\"></textarea></td>
  72. </tr>
  73. <td>Tel. kontaktowy:</td>
  74. <td><input type='text' name='tel' style='width: 250px'></td>
  75. </tr>
  76. <tr>
  77. <td>Adres e-mail:</td>
  78. <td><input type='text' name='email' style='width: 250px'></td>
  79. </tr>
  80. <tr>
  81. <td>potwierdzenie</td>
  82. <td><input type=\"checkbox\" name=\"mailing\" value=\"checked\">asdasdasdasd</td>
  83. </tr>
  84. <tr>
  85. <td> </td>
  86. <td><input type='submit' name='submit' value='Wyślij'> 
  87. </form>
  88. </tr>
  89. </table>";
  90. }
  91.  
  92. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  93. elseif (!empty($_POST['email'])) {
  94. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  95. // zmienna $message zawiera treść wiadomości
  96. $message = "Nazwa kursu: $_POST[kurs]\nTermin kursu: $_POST[termin]\nImię i nazwisko: $_POST[imie]\nData urodzenia: $_POST[data]\nTytuł zawodowy lub naukowy: $_POST[tytul]\nAdres zamieszkania: $_POST[adres]\nTel. kontaktowy: $_POST[tel]\ne-mail: $_POST[email]";
  97. // zmienna $header zawiera przede wszystkim adres zwrotny
  98. $header = "From: $_POST[imie] <$_POST[email]>";
  99. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  100. @mail("xxx@wp.pl","Wiadomosc ze strony WWW","$message","$header")
  101. or die('Nie udało się wysłać wiadomości');
  102. // wyświetlenie komunikatu w przypadku powodzenia
  103. echo "<div align='center'><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  104. }
  105. ?>


Pozdrawiam
markonix
  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  2.  
  3. <script type="text/javascript">
  4. $(document).ready(function(){
  5. $("input[name=submit]").attr('disabled','disabled');
  6. $("input[name=mailing]").change(function(){
  7. if ($(this).is(':checked')) {
  8. $("input[name=submit]").removeAttr("disabled");
  9. }
  10. else {
  11. $("input[name=submit]").attr('disabled','disabled');
  12. }
  13. });
  14. });
  15.  


Taki skrypt w JavaScript (jQuery) zmieni przycisk w "nieklikalny" (taki, którego nie da się kliknąć), póki ktoś nie zaznaczy tego checkboxa.
Oczywiście to tylko dodatek, ale miły dla Twoich użytkowników.

Jeśli chodzi o PHP - oczywiście też musisz sprawdzić czy zostało zaznaczone ale szczerze to za późno jest jak dla mnie żeby czytać Twój kod.
Wyprzedzając trochę Twoje oczekiwania mniemam, że te dane i tak będziesz chciał jeszcze zwalidować (obowiązkowo e-mail jak dla mnie).
Dlatego z góry radzę napisać to trochę inaczej:
- kod odpowiedzialny za walidacje
- pętla wyświetlająca błędy
- jeśli błędów == 0 to wyślij i pokaż komunikat "Wysłano"
- jeśli błędów > 0 to pokaż formularz

Kod w dużym skrócie będzie wyglądał tak:
  1. $errors = array();
  2. if (!isset($_POST[kurs])) $errors[] = 'Nie wpisałeś nazwy kursu';
  3. if (!isset($_POST[termin])) $errors[] = 'Nie wpisałeś terminu';

itd.

Błędy wyświetlasz za pomocą.:

  1. foreach($errors as $blad) {
  2. echo "<p class="blad">$blad</p> <br />";
  3. }


Sprawdzasz liczbę błędów za pomocą count.
W zależności od liczby błędów wysyłasz maila lub pokazujesz ponownie formularz (jeśli ponownie formularz to wszystkie błędy ładnie będą wyświetlone jedno po drugim). Warto dodać klase css dla tych błędów. Minimum na czerwono pokolorować. W przykładzie dałem klasę "blad".
fcppl
witam,

Dziekuje wszystkim za pomoc. Formularz działa juz tak jak powinien.

Przesyłam kod smile.gif moze ktos o slabym stopniu znajmosci php wkorzysta do swoich potrzeb.

  1. <style type="text/css">
  2.  
  3. .input {
  4. font-family: Arial;
  5. display: block;
  6. border: none;
  7. background: transparent url(button.jpg);
  8. font-size: 11px;
  9. color: #ffffff;
  10. width: 95px;
  11. height: 25px;
  12. }
  13.  
  14. </style>
  15.  
  16.  
  17. <?php
  18. if ((empty($_POST['kurs']) or empty($_POST['termin']) or empty($_POST['mailing']) or empty($_POST['imie']) or empty($_POST['data']) or empty($_POST['tytul']) or empty($_POST['adres']) or empty($_POST['tel']) or empty($_POST['email'])) and !empty($_POST['submit'])) {
  19. // wyświetlamy formularz
  20. echo "<table border='0'><form method='post'>
  21. <tr>
  22. <tr>
  23. <td width='190'>Nazwa kursu:</td>
  24. <td><input type='text' name='kurs' style='width: 280px' value='".$_POST['kurs']."'></td>
  25. </tr>
  26. <td>Termin kursu:</td>
  27. <td><input type='text' name='termin' style='width: 280px' value='".$_POST['termin']."'></td>
  28. </tr>
  29. <td>Imię i nazwisko:</td>
  30. <td><input type='text' name='imie' style='width: 280px' value='".$_POST['imie']."'></td>
  31. </tr>
  32. <td>Data urodzenia:</td>
  33. <td><input type='text' name='data' style='width: 280px' value='".$_POST['data']."'></td>
  34. </tr>
  35. <td>Tytuł zawodowy lub naukowy:</td>
  36. <td><textarea name=\"tytul\" style=\"width: 280px; height: 30px\"></textarea></td>
  37. </tr>
  38. <td>Adres zamieszkania:</td>
  39. <td><textarea name=\"adres\" style=\"width: 280px; height: 40px\"></textarea></td>
  40. </tr>
  41. <td>Tel. kontaktowy:</td>
  42. <td><input type='text' name='tel' style='width: 200px' value='".$_POST['tel']."'></td>
  43. </tr>
  44. <tr>
  45. <td>Adres e-mail:</td>
  46. <td><input type='text' name='email' style='width: 200px' value='".$_POST['email']."'></td>
  47. </tr>
  48. <td>Oświadczenie:</td>
  49. <td><input type=\"checkbox\" name=\"mailing\" value=\"Wyrażam zgodę na przechowywanie...\"> Wyrażam zgodę na przechowywanie i przetwarzanie moich danych osobowych zawartych w formularzu, zgodnie z ustawą z dnia 29.08.1997 r. o ochronie danych osobowych (Dz. U. nr 133, poz. 833). Mam prawo wglądu i zmiany swoich danych personalnych.</td>
  50. </tr>
  51. <tr>
  52. <td> </td>
  53. <td><br><input type='submit' name='submit' value='wyślij formularz' class='input'> 
  54. </form>
  55. </tr>
  56. <tr>
  57. <td> </td>
  58. <td>";
  59. // lub w przypadku nie wypełnienia formularza do końca
  60. echo "<span style='color: #FF0000; text-align: center;'>Wypełnij wszystkie pola formularza i zaznacz oświadczenie !</span>";
  61. echo "</td>
  62. </tr>
  63. </table>";
  64. }
  65. elseif (empty($_POST['kurs']) or empty($_POST['termin']) or empty($_POST['mailing']) or empty($_POST['imie']) or empty($_POST['data']) or empty($_POST['tytul']) or empty($_POST['adres']) or empty($_POST['tel']) or empty($_POST['email']) and empty($_POST['submit'])) {
  66. // wyświetlamy formularz
  67. echo "<table border='0'><form method='post'>
  68. <tr>
  69. <tr>
  70. <td width='190'>Nazwa kursu:</td>
  71. <td><input type='text' name='kurs' value='Funkcjonalna Terapia Manualna' style='width: 280px'></td>
  72. </tr>
  73. <td>Termin kursu:</td>
  74. <td><input type='text' name='termin' value='25.10.2010' style='width: 280px'></td>
  75. </tr>
  76. <td>Imię i nazwisko:</td>
  77. <td><input type='text' name='imie' style='width: 280px'></td>
  78. </tr>
  79. <td>Data urodzenia:</td>
  80. <td><input type='text' name='data' style='width: 280px'></td>
  81. </tr>
  82. <td>Tytuł zawodowy lub naukowy:</td>
  83. <td><textarea name=\"tytul\" style=\"width: 280px; height: 30px\"></textarea></td>
  84. </tr>
  85. <td>Adres zamieszkania:</td>
  86. <td><textarea name=\"adres\" style=\"width: 280px; height: 40px\"></textarea></td>
  87. </tr>
  88. <td>Tel. kontaktowy:</td>
  89. <td><input type='text' name='tel' style='width: 200px'></td>
  90. </tr>
  91. <tr>
  92. <td>Adres e-mail:</td>
  93. <td><input type='text' name='email' style='width: 200px'></td>
  94. </tr>
  95. <td>Oświadczenie:</td>
  96. <td><input type=\"checkbox\" name=\"mailing\" value=\"Wyrażam zgodę na przechowywanie...\"> Wyrażam zgodę na przechowywanie i przetwarzanie moich danych osobowych zawartych w formularzu, zgodnie z ustawą z dnia 29.08.1997 r. o ochronie danych osobowych (Dz. U. nr 133, poz. 833). Mam prawo wglądu i zmiany swoich danych personalnych.</td>
  97. </tr>
  98. <tr>
  99. <td> </td>
  100. <td><br><input type='submit' name='submit' value='wyślij formularz' class='input'> 
  101. </form>
  102. </tr>
  103. </table>";
  104. }
  105.  
  106. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  107. elseif (!empty($_POST['email'])) {
  108. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  109. // zmienna $message zawiera treść wiadomości
  110. $message = "Nazwa kursu: $_POST[kurs]\nTermin kursu: $_POST[termin]\nImię i nazwisko: $_POST[imie]\nData urodzenia: $_POST[data]\nTytuł zawodowy lub naukowy: $_POST[tytul]\nAdres zamieszkania: $_POST[adres]\nTel. kontaktowy: $_POST[tel]\ne-mail: $_POST[email]\nOświadczenie: $_POST[mailing]";
  111. // zmienna $header zawiera przede wszystkim adres zwrotny
  112. $header = "From: $_POST[imie] <$_POST[email]>";
  113. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  114. @mail("xxx@wp.pl","Wiadomosc ze strony WWW","$message","$header")
  115. or die('Nie udało się wysłać wiadomości');
  116. // wyświetlenie komunikatu w przypadku powodzenia
  117. echo "<div align='center'><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  118. }
  119. ?>
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.