Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Jak zrobić Alert ?
Forum PHP.pl > Forum > Przedszkole
Antonio93
Witam,

Czy mógłby ktoś powiedzieć jak zrobić coś takiego że mam np formularz z Imieniem, Nazwiskiem, Wiekiem i Miastem i chce zrobić coś takiego że jak ktoś nie wpisze np Imienia to mu wyskoczy komunikat np "Nie wypelniles wszystkich pol ! Popraw to !" Ale żeby nie przechodziły do następnego pliku gdy się nie wypełni tych pól.

Mam taki kod:

Kod
<form action="news.php" method="post">


<div id="imie">Imię<input type="text" name="imie" id="imie-t" autocomplete="off" /></div>
<div id="nazwisko">Nazwisko<input type="text" name="nazwisko" id="nazwisko-t" autocomplete="off" /></div>
<div id="wiek">Wiek<input type="text" name="wiek" id="wiek-t" maxlength="2" autocomplete="off" /></div>
<div id="miasto">Miasto<input type="text" name="miasto" id="miasto-t" autocomplete="off" /></div>

<div id="motyw">Motyw:<select name="motyw" id="motyw-t" autocomplete="off"><option value="0">Wybierz motyw</option>
<option value="1">Motyw 1</option>
<option value="2">Motyw 2</option>
<option value="3">Motyw 3</option>
<option value="4">Motyw 4</option>
<option value="5">Motyw 5</option>
</select>

</div>

<div id="button"><input type="submit" value="Wygeneruj" /></div>

</form>
r4xz
każdy użytkownik może wyłączyć obsługę JS, polecam próbować w php winksmiley.jpg
Antonio93
W PHP jestem zielony, można prosić o rady ?
darko
  1. <form name="myform" action="news.php" method="post" onsubmit="return validate_me();">
  2.  
  3.  
  4. <div id="imie">Imię<input type="text" name="imie" id="imie-t" autocomplete="off" /></div>
  5. <div id="nazwisko">Nazwisko<input type="text" name="nazwisko" id="nazwisko-t" autocomplete="off" /></div>
  6. <div id="wiek">Wiek<input type="text" name="wiek" id="wiek-t" maxlength="2" autocomplete="off" /></div>
  7. <div id="miasto">Miasto<input type="text" name="miasto" id="miasto-t" autocomplete="off" /></div>
  8.  
  9. <div id="motyw">Motyw:<select name="motyw" id="motyw-t">
  10. <option value="0">Wybierz motyw</option>
  11. <option value="1">Motyw 1</option>
  12. <option value="2">Motyw 2</option>
  13. <option value="3">Motyw 3</option>
  14. <option value="4">Motyw 4</option>
  15. <option value="5">Motyw 5</option>
  16.  
  17. </div>
  18.  
  19. <div id="button"><input type="submit" value="Wygeneruj" /></div>
  20.  
  21. </form>
  22.  
  23. function validate_me() {
  24. var form=document.myform;
  25. if(form.imie-t.value == 'undefined' || form.imie-t.value == '' || form.imie-t.value == null) {
  26. alert('Prosze podac imie');
  27. return false;
  28. }
  29. if(form.nazwisko-t.value == 'undefined' || form.nazwisko-t.value == '' || form.nazwisko-t.value == null) {
  30. alert('Prosze podac nazwisko');
  31. return false;
  32. }
  33. if(form.wiek-t.value == 'undefined' || form.wiek-t.value == '' || form.wiek-t.value == null) {
  34. alert('Prosze podac wiek');
  35. return false;
  36. }
  37. if(form.miasto-t.value == 'undefined' || form.miasto-t.value == '' || form.miasto-t.value == null) {
  38. alert('Prosze podac miasto');
  39. return false;
  40. }
  41. return true;
  42. }
  43.  
Antonio93
darko, skrypt zamiast sprawdzić pierw czy pola są wpisane to przechodzi odrazu do pliku "news.php" wogóle nie sprawdza tylko bezpośrednio przechodzi ; /
darko
Racja, wklej to:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  3. <title>Insert title here</title>
  4. </head>
  5. <form name="myform" action="news.php" method="post" onsubmit="return validate_me();">
  6.  
  7.  
  8. <div id="imie">Imię<input type="text" name="imie" id="imie-t" autocomplete="off" /></div>
  9. <div id="nazwisko">Nazwisko<input type="text" name="nazwisko" id="nazwisko-t" autocomplete="off" /></div>
  10. <div id="wiek">Wiek<input type="text" name="wiek" id="wiek-t" maxlength="2" autocomplete="off" /></div>
  11. <div id="miasto">Miasto<input type="text" name="miasto" id="miasto-t" autocomplete="off" /></div>
  12.  
  13. <div id="motyw">Motyw:<select name="motyw" id="motyw-t">
  14. <option value="0">Wybierz motyw</option>
  15. <option value="1">Motyw 1</option>
  16. <option value="2">Motyw 2</option>
  17. <option value="3">Motyw 3</option>
  18. <option value="4">Motyw 4</option>
  19. <option value="5">Motyw 5</option>
  20.  
  21. </div>
  22.  
  23. <div id="button"><input type="submit" value="Wygeneruj" /></div>
  24.  
  25. </form>
  26.  
  27. function validate_me() {
  28. var form=document.myform;
  29. if(form.imie.value == 'undefined' || form.imie.value == '' || form.imie.value == null) {
  30. alert('Prosze podac imie');
  31. return false;
  32. }
  33. if(form.nazwisko.value == 'undefined' || form.nazwisko.value == '' || form.nazwisko.value == null) {
  34. alert('Prosze podac nazwisko');
  35. return false;
  36. }
  37. if(form.wiek.value == 'undefined' || form.wiek.value == '' || form.wiek.value == null) {
  38. alert('Prosze podac wiek');
  39. return false;
  40. }
  41. if(form.miasto.value == 'undefined' || form.miasto.value == '' || form.miasto.value == null) {
  42. alert('Prosze podac miasto');
  43. return false;
  44. }
  45. return true;
  46. }
  47.  
  48.  
  49. </body>
  50. </html>
Antonio93
No teraz śmiga, darko masz pomógł winksmiley.jpg tylko to jest w JS i tak jak wspomniał kolega wyżej ktoś może wyłączyć JS i wtedy to nie będzie działać, mógłby ktoś powiedzieć jak zrobić taki srkypt w PHP ?
darko
zrób prostą walidację czy nie puste:

  1. $posted = array("imie", "nazwisko", "wiek", "miasto");
  2. $display_form_again = false;
  3. foreach($posted as $p) {
  4. if($_REQUEST[$p] == "") {
  5. echo "Proszę podać $p";
  6. $display_form_again = true;
  7. }
  8. }
  9. if($display_form_again) {
  10. // wyświetl jeszcze raz formularz ale dodaj jeszcze w inputach value=$_REQUEST["imie"] itd. żeby form był wypełniony tym, co już przesłano
  11. // (...)
  12. // exit;
  13. }


i dodaj już sobie sam htmlspecialchars, strip_tags, htmlentities

Cytat
każdy użytkownik może wyłączyć obsługę JS, polecam próbować w php


a ja jeszcze dodam, że nie trzeba nic wyłączać, ponieważ można taką stronę zapisać na swoim dysku i edytować usuwając całą walidację w js i po ponownym zapisaniu na dysk... wysłać dane bez żadnej walidacji (!)

Antonio93 walcz już dalej sam. Odbieranie danych z formularzy to bardzo ważny temat/wątek/aspekt pracy z php, jeśli myślisz na poważnie o programowaniu w tym języku. Ja i tak mam "moralniaka", że podałem na tacy... (Ty wiesz ocb).

Pozdrawiam!
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.