Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Sprawdzanie formularza
malolat_ps
post 12.06.2009, 17:36:48
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

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


Witam!

Tworzę sobie formularz rejestracji i chciałbym zrobić sprawdzanie w JS. Wymyśliłem, że jeżeli jakieś pole będzie wypełnione źle, bądź wogóle nie wypełnione, to nad formularzem pojawi się odpowiedni komunikat. Znalazłem taki skrypt, przerobiłem i niestety nie działa, pomimo, że wszystko jest praktycznie identyczne. Już straciłem pomysł, gdzie może być błąd, może Wy coś zauważycie smile.gif  A więc:

formularz

  1. <form method="post" action="" onsubmit="javascript:register();">
  2. <div id="registerResult"></div>
  3. <div class="rejestracja_naglowek">KONTO</div>
  4. <div class="rejestracja_blok">E-mail: <input type="text" id="email" name="email" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  5. <div class="rejestracja_blok">Hasło: <input type="password" id="haslo" name="haslo" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  6. <div class="rejestracja_blok">Powtórz hasło: <input type="password" id="powtorzhaslo" name="powtorz_haslo" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  7. <div class="rejestracja_naglowek">DANE PERSONALNE</div>
  8. <div class="rejestracja_blok">Imię: <input type="text" id="imie" name="imie" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  9. <div class="rejestracja_blok">Nazwisko: <input type="text" id="nazwisko" name="nazwisko" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  10. <div class="rejestracja_blok">Numer telefonu: <input type="text" id="telefon" name="numer_telefonu" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  11. <div class="rejestracja_blok">Ulica: <input type="text" id="ulica" name="ulica" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  12. <div class="rejestracja_blok">Numer domu: <input type="text" id="dom" name="numer_domu" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  13. <div class="rejestracja_blok">Kod pocztowy: <input type="text" id="kod" name="kod_pocztowy" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  14. <div class="rejestracja_blok">Miasto: <input type="text" id="miasto" name="miasto" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  15. <?php $zapytanie_k = mysql_query("SELECT * FROM `kraje`");
  16. ?>
  17. <div class="rejestracja_blok">Kraj: <select name="kraj" id="kraj" style="width: 254px; border: solid 1px #000000; color: #6c6c6c;">
  18. <option value="0">-- wybierz --</option>
  19. <?php while($fetchk = mysql_fetch_array($zapytanie_k))
  20. {
  21. $checked = ($fetchk['id'] == '120') ? 'selected' : '';
  22. ?>
  23. <option value="<?php echo $fetchk['id']; ?>" <?php echo $checked; ?>><?php echo $fetchk['kraj']; ?></option>
  24. <?php }
  25. ?>
  26. </select></div>
  27. <div class="rejestracja_naglowek">DANE DODATKOWE</div>
  28. <div class="rejestracja_blok">Nazwa firmy: <input type="text" name="nazwa_firmy" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  29. <div class="rejestracja_blok">NIP: <input type="text" id="nip" name="nip" style="width: 250px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  30. <div class="rejestracja_blok" style="margin-right: 239px;">Subskrypcja: <input type="checkbox" name="subskrypcja" value="1" style="width: 15px; height: 15px; border: solid 1px #000000; color: #6c6c6c;" /></div>
  31. <div class="rejestracja_blok" style="text-align: center; margin-top: 30px;"><input type="submit" value="Rejestracja" name="submit" style="width: 75px; height: 25px; background: #6c6c6c; border: solid 1px #000000; color: #E2E0E1;" /></div>
  32. </form>


Oczywiście w nagłówku dokumentu znajduje się wpis:

  1. <script language="javascript" type="text/javascript" src="js/register.js"></script>


A tutaj plik register.js:

  1. function register() {
  2.  
  3.   var registerResult = document.getElementById("registerResult");
  4.   var email = document.getElementById("email").value;
  5.   var haslo = document.getElementById("haslo").value;
  6.   var powtorzhaslo = document.getElementById("powtorzhaslo").value;
  7.   var imie = document.getElementById("imie").value;
  8.   var nazwisko = document.getElementById("nazwisko").value;
  9.   var telefon = document.getElementById("telefon").value;
  10.   var ulica = document.getElementById("ulica").value;
  11.   var dom = document.getElementById("dom").value;
  12.   var kod = document.getElementById("kod").value;
  13.   var miasto = document.getElementById("miasto").value;
  14.   var kraj = document.getElementById("kraj").value;
  15.   var nip = document.getElementById("nip").value;
  16.  
  17.   var poprawnyemail = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
  18.   var poprawnykod = /^\d{2}\-\d{3}$/;
  19.   var poprawnynip = /^\(d{3}-\d{3}-\d{2}-\d{2})|(d{3}-\d{2}-\d{2}-\d{3}$/;
  20.  
  21.   var sprawdzemail = poprawnyemail.test(email);
  22.   var sprawdzkod = poprawnykod.test(kod);
  23.   var sprawdznip = poprawnynip.test(nip);
  24.  
  25.   if(!sprawdzemail) {
  26.   registerResult.innerHTML = "Adres e-mail jest nieprawidłowy!";
  27.   return false;
  28.   }
  29.   elseif(haslo == '') {
  30.   registerResult.innerHTML = "Nie podano hasła!";
  31.   return false;
  32.   }
  33.   elseif(powtorzhaslo == '') {
  34.   registerResult.innerHTML = "Nie powtórzono hasła!";
  35.   return false;
  36.   }
  37.   elseif(haslo != powtorzhaslo) {
  38.   registerResult.innerHTML = "Podane hasła różnią się od siebie!";
  39.   return false;
  40.   }
  41.   elseif(imie == '') {
  42.   registerResult.innerHTML = "Nie wpisano imienia!";
  43.   return false;
  44.   }
  45.   elseif(nazwisko == '') {
  46.   registerResult.innerHTML = "Nie wpisano nazwiska!";
  47.   return false;
  48.   }
  49.   elseif(telefon == '') {
  50.   registerResult.innerHTML = "Nie podano numeru telefonu!";
  51.   return false;
  52.   }
  53.   elseif(ulica == '') {
  54.   registerResult.innerHTML = "Nie podano nazwy ulicy!";
  55.   return false;
  56.   }
  57.   elseif(dom == '') {
  58.   registerResult.innerHTML = "Nie wpisano numeru domu!";
  59.   return false;
  60.   }
  61.   elseif(!sprawdzkod) {
  62.   registerResult.innerHTML = "Podany kod pocztowy jest nieprawidłowy!";
  63.   return false;
  64.   }
  65.   elseif(miasto == '') {
  66.   registerResult.innerHTML = "Nie podano nazwy miasta!";
  67.   return false;
  68.   }
  69.   elseif(kraj == '0') {
  70.   registerResult.innerHTML = "Nie wybrano kraju z listy!";
  71.   return false;
  72.   }
  73.   elseif(nip != '' && !sprawdznip) {
  74.   registerResult.innerHTML = "Podany NIP jest nieprawidłowy!";
  75.   return false;
  76.   }
  77.   else {
  78.   return true;
  79.   }
  80. }


Gdzie jest błąd ? smile.gif)

Ten post edytował malolat_ps 12.06.2009, 17:38:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
athei
post 12.06.2009, 17:54:35
Post #2





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


Zrezygnuj ze sprawdzania poprawności danych za pomocą JS i rób to w php. Pomyśl co będzie gdy ktoś wyłączy js albo wyedytuje formularz...
Go to the top of the page
+Quote Post
malolat_ps
post 12.06.2009, 17:58:18
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

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


Czekałem aż ktoś to napisze. Czy ja gdziekolwiek stwierdziłem, że za pomocą php nie będę sprawdzał ? ;>  Formularz będzie sprawdzany dwukrotnie, za pomocą JS, a później jeszcze za pomocą PHP, na wypadek, gdyby ktoś miał właśnie wyłączony JS. Jednak chcę sprawdzać także przez JS, bo jest to wygodniejsze, gdy nie trzeba się męczyć z ciągłym przeładowywaniem strony.

Ten post edytował malolat_ps 12.06.2009, 18:03:00
Go to the top of the page
+Quote Post
Filip_Łdz
post 12.06.2009, 18:01:21
Post #4





Grupa: Zarejestrowani
Postów: 46
Pomógł: 1
Dołączył: 26.05.2009

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


Wyłączone php ? Jeśli mówisz o userze to możesz sobie w przeglądarce js wyłączyć a nie php.
Go to the top of the page
+Quote Post
malolat_ps
post 12.06.2009, 18:02:41
Post #5





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

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


Cytat(Filip_Łdz @ 12.06.2009, 19:01:21 ) *
Wyłączone php ? Jeśli mówisz o userze to możesz sobie w przeglądarce js wyłączyć a nie php.


A Ty mnie nie łap za słówka, bo można się było domyślić, że pomyliłem się z rozpędu i oczywiście o wyłączony JS mi chodzi. 
Go to the top of the page
+Quote Post
Filip_Łdz
post 12.06.2009, 18:07:05
Post #6





Grupa: Zarejestrowani
Postów: 46
Pomógł: 1
Dołączył: 26.05.2009

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


Nie mam zamiaru łapać Cię za słówka. Zrób to tylko za pomocą php. Nie rozumiem po co robić sprawdzanie 2x.
Go to the top of the page
+Quote Post
malolat_ps
post 12.06.2009, 18:16:57
Post #7





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

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


Bo to fajny bajer jest i mam taką wizję przy tworzeniu strony smile.gif Uwierz, że dobrze się zastanowiłem czy chcę to wykorzystać i jestem pewny, że chcę. Więc jeżeli ktoś zna rozwiązanie problemu to będę bardzo wdzięczny winksmiley.jpg
Go to the top of the page
+Quote Post
Filip_Łdz
post 12.06.2009, 18:26:55
Post #8





Grupa: Zarejestrowani
Postów: 46
Pomógł: 1
Dołączył: 26.05.2009

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


Czasami chora upartość nie popłaca.

Może tutaj coś znajdziesz: http://marcinkaszynski.com/blog/index.php/...nie-formularzy/

Ten post edytował Filip_Łdz 12.06.2009, 18:29:35
Go to the top of the page
+Quote Post
malolat_ps
post 12.06.2009, 18:29:59
Post #9





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

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


Ale to moja sprawa jak to zrobię i czy popłaca czy nie popłaca. Zwróciłem się na forum o pomoc i mam nadzieję, że ją otrzymam. Jeżeli nie jesteś w stanie mi pomóc to bądź tak miły i nie rozmywaj tego tematu. Amen
Go to the top of the page
+Quote Post
Filip_Łdz
post 12.06.2009, 18:31:36
Post #10





Grupa: Zarejestrowani
Postów: 46
Pomógł: 1
Dołączył: 26.05.2009

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


Patrz link up.

ps. Odnoszę wrażenie, że jesteś jakoś strasznie podenerwowany. Spokojnie ^^
Go to the top of the page
+Quote Post
malolat_ps
post 12.06.2009, 18:36:53
Post #11





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

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


Mogłeś odnieść takie wrażenie, bo rzeczywiście na chwilę obecną nie jestem najspokojniejszym człowiekiem świata, ale wynika to z faktu, że się rozchorowałem sad.gif  więc bez urazy winksmiley.jpg

Co do linka, to niestety nic mi to nie pomogło. Przy tym moim sprawdzaniu strona po kliknięciu się przeładowuje, więc wygląda to tak, jakby ta funkcja js nie była wogóle wywoływana. Nie mam zbyt dużego doświadczenia w JS, więc błąd może być bardzo prosty, jednak ja go nie zauważam smile.gif
Go to the top of the page
+Quote Post
Kshyhoo
post 12.06.2009, 18:39:35
Post #12





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




@malolat_ps, załącz skrypt przed Twoimi zmianami. Po za tym, nie karmić troli i nie spamować!


--------------------
Go to the top of the page
+Quote Post
malolat_ps
post 12.06.2009, 18:42:08
Post #13





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 12.10.2008

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


Skrypt przed zmianami znajduje się tutaj
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:11