Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Lista rozwijana
Forum PHP.pl > Forum > Przedszkole
eeagle
Mam prosty formularz z kilkoma polami text i 2 listy rozwijane. Problem jest taki że po kliknięciu submit i nie spełnieniu warunków pola textowe nadal są wypełnione ( tak powinno być ) natomiast menu rozwijalne wraca do stanu pierwotnego.
Co zrobić aby skrypt pamiętał wybór?

Poniżej kod:

  1. <?php
  2. function formularz(
  3. $imie = "",
  4. $nazwisko = "",
  5. $miejscowosc = "",
  6. $user_mail= "",
  7. $car_model= "",
  8. $vin= "",
  9. $mailing_checked = false ) {
  10. ?>
  11. <div class="wrapper">
  12. <!-- Start of FORM -->
  13. <div class="form-container">
  14. <form class="forms" action="" method="post">
  15. <fieldset>
  16. <ol>
  17. <li class="form-row text-input-row">DANE UŻYTKOWNIKA:</li>
  18. <li class="form-row text-input-row">IMIĘ:<input type="text" name="imie" value=<?= $imie; ?>></li>
  19. <li class="form-row text-input-row">NAZWISKO:<input type="text" name="nazwisko" value=<?= $nazwisko; ?>></li>
  20. <li class="form-row text-input-row">MIEJSCOWOŚĆ:<input type="text" name="miejscowosc" value=<?= $miejscowosc; ?>></li>
  21. <li class="form-row text-input-row">ADRES EMAIL:<input type="text" name="user_mail" value=<?= $user_mail; ?>></li>
  22. <li class="form-row text-input-row">DANE SAMOCHODU:</li>
  23. <li class="form-row text-input-row">MODEL SAMOCHODU:
  24. <select name="car_model" value= <?= $car_model; ?>>
  25. <optgroup label="FORD">
  26. <option>KA</option>
  27. <option>FIESTA</option>
  28. <option>FOCUS</option>
  29. <option>MONDEO</option>
  30. </optgroup>
  31. <optgroup label="NISSAN">
  32. <option>MICRA</option>
  33. <option>ALMERA</option>
  34. <option>PRIMERA</option>
  35. </optgroup>
  36. </select>
  37. </li>
  38. <li class="form-row text-input-row">VIN:<input type="text" name="vin" value=<?= $vin; ?>></li>
  39. <li class="form-row text-input-row">Akceptuję warunki p<a href="warunki.pdf" target="_blank"><img src="style/images/pdf.gif" /></a><input type="checkbox" name="mailing" value="zgoda"/></li>
  40. <li><input type="submit" name="submit" value="Wyślij"></li>
  41. <li>&nbsp;</li>
  42. <li><INPUT type="button" value="Wyczyść" onclick="return clearForm(this.form);"></li>
  43. </ol>
  44. </fieldset>
  45. </form><br><br>
  46. </div>
  47. <?php
  48. }
  49. ?>
  50. <?php
  51. if (isset($_POST["submit"]))
  52. {
  53. // Sprawdzamy, czy użytkownik zaznaczył pole wyboru i ustawiamy wartość
  54. // odpowiedniej zmiennej
  55. $mailing = false;
  56.  
  57. // Wyświetlamy formularz z wpisanymi wartościami poszczególnych pól
  58. formularz($_POST["imie"], $_POST["nazwisko"], $_POST["miejscowosc"], $_POST["user_mail"], $_POST["car_model"], $_POST["vin"], $mailing);
  59.  
  60. if (empty($_POST["imie"])) { echo "<p style=\"color:red\">Nie wypełniłeś pola <strong>Imię !</strong><br/></p>"; }
  61. elseif (strlen($_POST["imie"]) > 20){echo "<p style=\"color:red\">Za długie Imię - max. 20 znaków <br/></p>";}
  62. elseif (empty($_POST["nazwisko"])) { echo "<p style=\"color:red\">Nie wypełniłeś pola <strong>Nazwisko !</strong><br/></p>"; }
  63. elseif (strlen($_POST["nazwisko"]) > 20){echo "<p style=\"color:red\">Za długie nazwisko - max. 20 znaków <br/></p>";}
  64. elseif (empty($_POST["miejscowosc"])) { echo "<p style=\"color:red\">Nie wypełniłeś pola <strong>Miejscowość !</strong><br/></p>"; }
  65. elseif (strlen($_POST["miejscowosc"]) > 20){echo "<p style=\"color:red\">Za długie nazwa miejscowości - max. 20 znaków <br/></p>";}
  66. elseif (strlen($_POST["user_mail"]) > 30){echo "<p style=\"color:red\">Za długie nazwa email - max. 30 znaków <br/>";}
  67. elseif (preg_match('/^[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ0-9\-\_\.]+\@[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ0-9\-\_\.]+\.[a-z]{2,4}$/',$_POST["user_mail"]) == false) { echo "<p style=\"color:red\">Niepoprawny adres E-mail!</p>"; }
  68. elseif (empty($_POST["car_model"])) { echo "<p style=\"color:red\">Nie wypełniłeś pola <strong>Model !</strong><br/></p>"; }
  69. elseif (strlen($_POST["car_model"]) > 12){echo "<p style=\"color:red\">Za długa nazwa Modelu - max. 12 znaków <br/></p>";}
  70. elseif (empty($_POST["vin"])) { echo "<p style=\"color:red\">Nie wypełniłeś pola <strong>VIN !</strong><br/></p>"; }
  71. elseif (strlen($_POST["vin"]) > 12){echo "<p style=\"color:red\">Za długa nazwa VIN - max. 12 znaków <br/></p>";}
  72. elseif (empty($_POST["mailing"])) {echo "<p style=\"color:red\">Warunkiem przedłużonej gwarancji jest zgoda na otrzymywanie informacji handlowych</p>";}
  73. else {
  74.  
  75. $result = mysql_query("SELECT 'vin' FROM `users` WHERE vin='$_POST[vin]'") or die('Błąd zapytania');
  76. $row = mysql_num_rows($result);
  77. if($row > 0) {
  78. echo '<p style=\"color:red\">Już istnieje zarejestrowany użytkownik z takim nr VIN.</p>';
  79. } else {
  80. $ins = @mysql_query("INSERT INTO users SET imie='$_POST[imie]' , nazwisko='$_POST[nazwisko]', miejscowosc='$_POST[miejscowosc]', user_mail='$_POST[user_mail]', car_model='$_POST[car_model]',
  81. vin='$_POST[vin]', mailing='$_POST[mailing]' ");
  82. echo 'Dane zostały przesłane poprawnie.</br>';
  83. echo 'W ciągu 2dni otrzymasz na podany adres email potwierdzenie przyjęcia zgłoszenia.';
  84.  
  85. echo '<div id="dialog" title="Informacja">
  86. <p>Dane zostały przesłane poprawnie. W ciągu 2 dni otrzymasz na podany adres email potwierdzenie przyjęcia zgłoszenia.</p>
  87. </div>';
  88. }
  89. }
  90. }
  91. else
  92. {
  93. formularz();
  94. }
  95. ?>
nospor
pola SELECT nie mają wartosci jako takiej i nie mozesz im ustawic VALUE jako domyslnej wartosci. Jak chcesz domyslnie zaznaczyc jakąś opcje, to zadanej opcji masz ustawic atrybut SELECTED
eeagle
Nie potrzebne mi jest statyczne przypisanie do jednego konkretnego pola. Chodzi mi o to jak sprawdzić co zostało wybrane przez użytkownika.
nospor
Ale ja nic nie mowie o statycznym.... ja ci tylko mowie jak sie zaznacza pola w SELECT bo tego nie wiedziales. I masz to zrobic dynamicznie.
eeagle
no i własnie o to pytam - jak to zrobić moze jakaś podpowiedz? Bo to że mam to zrobić dynamicznie to wiem smile.gif
Turson
  1. <option<?php if($car_model == 'KA') echo ' selected="selected"; ?>>KA</option>

i tak dalej
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.