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:
<?php
function formularz(
$imie = "",
$nazwisko = "",
$miejscowosc = "",
$user_mail= "",
$car_model= "",
$vin= "",
$mailing_checked = false ) {
?>
<div class="wrapper">
<!-- Start of FORM -->
<div class="form-container">
<form class="forms" action="" method="post">
<fieldset>
<ol>
<li class="form-row text-input-row">DANE UŻYTKOWNIKA:</li>
<li class="form-row text-input-row">IMIĘ:<input type="text" name="imie" value=<?= $imie; ?>></li>
<li class="form-row text-input-row">NAZWISKO:<input type="text" name="nazwisko" value=<?= $nazwisko; ?>></li>
<li class="form-row text-input-row">MIEJSCOWOŚĆ:<input type="text" name="miejscowosc" value=<?= $miejscowosc; ?>></li>
<li class="form-row text-input-row">ADRES EMAIL:<input type="text" name="user_mail" value=<?= $user_mail; ?>></li>
<li class="form-row text-input-row">DANE SAMOCHODU:</li>
<li class="form-row text-input-row">MODEL SAMOCHODU:
<select name="car_model" value= <?= $car_model; ?>>
<optgroup label="FORD">
<option>KA</option>
<option>FIESTA</option>
<option>FOCUS</option>
<option>MONDEO</option>
</optgroup>
<optgroup label="NISSAN">
<option>MICRA</option>
<option>ALMERA</option>
<option>PRIMERA</option>
</optgroup>
</select>
</li>
<li class="form-row text-input-row">VIN:<input type="text" name="vin" value=<?= $vin; ?>></li>
<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>
<li><input type="submit" name="submit" value="Wyślij"></li>
<li> </li>
<li><INPUT type="button" value="Wyczyść" onclick="return clearForm(this.form);"></li>
</ol>
</fieldset>
</form><br><br>
</div>
<?php
}
?>
<?php
if (isset($_POST["submit"])) {
// Sprawdzamy, czy użytkownik zaznaczył pole wyboru i ustawiamy wartość
// odpowiedniej zmiennej
$mailing = false;
// Wyświetlamy formularz z wpisanymi wartościami poszczególnych pól
formularz($_POST["imie"], $_POST["nazwisko"], $_POST["miejscowosc"], $_POST["user_mail"], $_POST["car_model"], $_POST["vin"], $mailing);
if (empty($_POST["imie"])) { echo "<p style=\"color:red\">Nie wypełniłeś pola <strong>Imię !</strong><br/></p>"; } elseif (strlen($_POST["imie"]) > 20
){echo "<p style=\"color:red\">Za długie Imię - max. 20 znaków <br/></p>";} elseif (empty($_POST["nazwisko"])) { echo "<p style=\"color:red\">Nie wypełniłeś pola <strong>Nazwisko !</strong><br/></p>"; } elseif (strlen($_POST["nazwisko"]) > 20
){echo "<p style=\"color:red\">Za długie nazwisko - max. 20 znaków <br/></p>";} elseif (empty($_POST["miejscowosc"])) { echo "<p style=\"color:red\">Nie wypełniłeś pola <strong>Miejscowość !</strong><br/></p>"; } elseif (strlen($_POST["miejscowosc"]) > 20
){echo "<p style=\"color:red\">Za długie nazwa miejscowości - max. 20 znaków <br/></p>";} elseif (strlen($_POST["user_mail"]) > 30
){echo "<p style=\"color:red\">Za długie nazwa email - max. 30 znaków <br/>";} 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>"; } elseif (empty($_POST["car_model"])) { echo "<p style=\"color:red\">Nie wypełniłeś pola <strong>Model !</strong><br/></p>"; } elseif (strlen($_POST["car_model"]) > 12
){echo "<p style=\"color:red\">Za długa nazwa Modelu - max. 12 znaków <br/></p>";} elseif (empty($_POST["vin"])) { echo "<p style=\"color:red\">Nie wypełniłeś pola <strong>VIN !</strong><br/></p>"; } elseif (strlen($_POST["vin"]) > 12
){echo "<p style=\"color:red\">Za długa nazwa VIN - max. 12 znaków <br/></p>";} elseif (empty($_POST["mailing"])) {echo "<p style=\"color:red\">Warunkiem przedłużonej gwarancji jest zgoda na otrzymywanie informacji handlowych</p>";} else {
$result = mysql_query("SELECT 'vin' FROM `users` WHERE vin='$_POST[vin]'") or
die('Błąd zapytania'); if($row > 0) {
echo '<p style=\"color:red\">Już istnieje zarejestrowany użytkownik z takim nr VIN.</p>'; } else {
$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]', vin='$_POST[vin]', mailing='$_POST[mailing]' ");
echo 'Dane zostały przesłane poprawnie.</br>'; echo 'W ciągu 2dni otrzymasz na podany adres email potwierdzenie przyjęcia zgłoszenia.';
echo '<div id="dialog" title="Informacja"> <p>Dane zostały przesłane poprawnie. W ciągu 2 dni otrzymasz na podany adres email potwierdzenie przyjęcia zgłoszenia.</p>
</div>';
}
}
}
else
{
formularz();
}
?>