Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przeksztalcenie formularza...
Forum PHP.pl > Forum > Po stronie przeglądarki
in5ane
czesc, napisalem sobie formularz w php, no i mam cos takiego ze jak w polu nick ktos wpisze ponizej 3 znakow to mu przy wysylaniu wywali alert i nie wysle. tak samo jest z polem e-mail, jak ktos wpisze byle co to tez alert wywali, musi byc prawdziwy e-mail. czy daloby rade to zrobic zeby nie wywalalo alertu tylko na czerwono pod danym polem? czekam na odpowiedz. pomocy.

Kod
<script>
function sprawdzFormularz(AForm) {
if ((!AForm.nick.value) || (AForm.nick.value.length < 3)) {
alert("Wypełnij pole nick, podaj co najmniej trzy znaki!");
return false;
}
wzor  = /^[a-zA-Z0-9]{1,30}@[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+$/;
wyn   = AForm.email.value.match(wzor);
if (wyn == null) {
alert("Proszę podać poprawny adres email. " +
"Poprawny adres musi zawierać @ " +
"np. ala@have.black.cat.com");
return false;
}
}
</script>
<form method="POST" action="?go=wyslij" onsubmit="return sprawdzFormularz(this);">
<p align="center">
<span style="font-size: 9pt">&nbsp;&nbsp; </span>
<b>F</b><font size="2">ormularz kontaktowy:</font><br>
<span style="font-size: 9pt">&nbsp; </span>
<font size="2">Miasto:</font>
<span style="font-size: 9pt"><br>
<select size="1" name="miasto">
<option>Gdansk</option>
<option>Piotrkow Tryb.</option>
<option>Bydgoszcz</option>
<option>Katowice</option>
<option>Chorzow</option>
<option>Gdynia</option>
<option>Poznan</option>
<option>Kolobrzeg</option>
<option>Lubin</option>
<option>Lublin</option>
<option>Inne</option>
</select><br><br>
<font size="2">Imię lub nick:</font>
<span style="font-size: 9pt"><br>
<input name="nick" type="text" id="nick" size="38" /><br>
<font size="2"><br>&nbsp; Twój email :<br></font>
<input name="email" type="text" id="email" size="38" />
<font size="2"><br>&nbsp; </font></span><br>
<font size="2">Tresc: </font>
<br>
<span style="font-size: 9pt">
<textarea rows="13" name="tresc" cols="44"></textarea>
<span style="font-size: 9pt"><br>
<input type="submit" value="Wyslij" name="B1"></span></p>
</form>
<?php
if($go==wyslij) {
$to = "quba101@wp.pl";
$subject = "Ktos wyslal ci wiadomosc z twojej strony";
$message = "\nOd : $nick ( $email ) \n \n Miasto : $miasto \n \n Tresc \n\n\n $tresc";
$extra = "From: quba101@wp.pl\r\nReply-To: quba101@wp.pl\r\n";
mail("$to", "$subject", "$message", "$extra");
echo "<center>Wiadomosc zostala wyslana w przeciagu najblizszych 24h powinnes dostac odpowiedz</center>";
}
?>


jezeli ktos by mogl to niech mi go przerobi. bardzo prosze.
revyag
Skrypt php to na pewno nie jest.
Przenoszę: Gotowe skrypty php -> Po stronie przeglądarki

poza tym co to za temat ? proszę na pw propozycje nowego, do tego czasu temat zamykam.

---
edit: otwieram
----
edit: to będzie tak:
Kod
function sprawdzFormularz(AForm) {
    if ((!AForm.nick.value) || (AForm.nick.value.length < 3)) {
        AForm.nick.style.border="1px solid red";
        document.getElementById("nick_err").innerHTML="Błędnie wypełnione pole";
        return false;
    } else {
        wzor  = /^[a-zA-Z0-9]{1,30}@[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+$/;
        wyn   = AForm.email.value.match(wzor);
        if (wyn == null) {
            AForm.email.style.border="1px solid red";
            document.getElementById("mail_err").innerHTML="Błędnie wypełnione pole";
            return false;
        }
    }
}

Trochę zmieniłem to żeby walidowało najpierw jedno pole, jeśli przejdzie to następne.
Pod inputami dajesz elementy span, w których będą się wyświetlać błędy.
Przykład.
  1. <input name="nick" type="text" id="nick" size="38" /><br>
  2. <span id="nick_err"></span>


  1. <input name="email" type="text" id="email" size="38" /><br>
  2. <span id="mail_err"></span>
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.