Ostatnio mam problem z banalnymi problemami
mam formularz w ktorym jest kilka pol input. Dane przed wyslaniem sa zapamietywane, np. gdyby wprowadzone dane byly bledne zostaja przywrocone bez wpisywania od poczatku.
Wszyskto dziala, tylko jak zrobic aby gdy wszystko jest OK i formularz zostanie juz wyslany a dane zapisane do bazy powrocic do pustego formularza ? Czy trzeba tworzyc kolejny przypadek do funkcji if ?
moj przypadek:
//sprawdzenie czy formularz zostal wyslany
if (isset($_POST['submitted'])) {
$errors = array(); //tablica bledow
//sprawdzenie nazwy
if (empty($_POST['user_name'])) {
$errors[] = '<script type="text/javascript" language="Javascript"> alert ("Musisz podać imie !")</script>';
} else {
$un = trim($_POST['user_name']);
}
//sprawdzenie email'a
if (empty($_POST['user_email'])) {
$errors[] = '<script type="text/javascript" language="Javascript"> alert ("Podaj swój adres e-mail !")</script>';
} elseif ($ue = (!eregi ('^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+.[a-z]{2,4}$', stripslashes(trim($_POST['user_email']))))) {
$errors[] = '<script type="text/javascript" language="Javascript"> alert ("Podaj prawidlowy adres e-mail !")</script>';
} else {
$ue = trim($_POST['user_email']);
}
//
if ($un && $ue) { //wszystko ok
$query = "SELECT user_id FROM news_users WHERE user_email='$ue'";
$result = mysql_query ($query) or trigger_error("blad");
if (mysql_num_rows($result) == 0) {//jest wolny
$query = "INSERT INTO news_users (user_id, user_name, user_email, date)".
" VALUES ('user_id', '$un', '$ue', NOW() )";
$result = mysql_query ($query);
if ($result) {
echo '<script type="text/javascript" language="Javascript"> alert ("Dziękujemy za dokonanie wpisu do biuletynu. Informacja o rejestracji został
a wysłana na Twój e-mail.")</script>';
mysql_close();}
}//zamkniecie wolnego
else { echo'<script type="text/javascript" language="Javascript"> alert ("Podany e-mail widnieje już w naszej bazie.")</script>'; }
} //zamkniecie wszystko ok
else {
foreach ($errors as $msg) { //wyswietlenie bledow
echo "$msg";
}
}
//
}
?>
<form action="newsletter.php" method="post">
<table width="300" border="1">
<tr><td>Imię:</td><td><input type="text" name="user_name" size="15" maxlength="15" value="
<?php if (isset($_POST['user_name'])) echo $_POST['user_name']; ?>" /></td></tr>
<tr><td>e-mail:</td><td><input type="text" name="user_email" size="20" maxlength="40" value="
<?php if (isset($_POST['user_email'])) echo $_POST['user_email']; ?>" /><p></td></tr>
<tr><td colspan="2" align="right"><input type="submit" value="Zapisz" />
<input type="hidden" name="submitted" value="TRUE" /></td></tr>
</table>
</form>
I drugie pytanie przy okazji
czesto uzywam alertow javascript do wyswietlania bledow(nie mam miejsca na stronie, zeby publikowac bledy w postaci tekstu):
<script type="text/javascript" language="Javascript"> alert ("Podany e-mail widnieje już w naszej bazie.")
</script>
Jak zrobic nowa linie? np.
Cytat
Podany e-mail widnieje już w naszej bazie.
Wprowadz inny !