zwracam się z ogromną prośbą o pomoc - na zaliczenie musze napisać formularz który bedzie zabezpieczony przez JS i będzie zapisywał dane w bazie danych dzięki PHP. O ile z php nie będzie większych problemów to nie mogę sobie poradzić z zabezpieczeniem pól w JS.
Formularz można zobaczyć tutaj:
http://szkola.zawi.pl/projektTech/zamowienie.html
Plik ze skryptami JS tutaj, są tam wszystkie funkcje które wydają mi sie niezbędne, nie mogę znaleźć w nich błędu:
http://szkola.zawi.pl/projektTech/skrypty.js
Jakie zabezpieczenia mają być zastosowane:
Żadne pole z niebieskiego formularza Twoje dane, nie może być puste
Pole imie, nazwisko to tylko litery
Pole ulica, numer domu to tylko litery i cyfry
Pole kod pocztowy musi mieć postać 00-000 (na to nie mam gotowej funkcji w skrypty.js)
Pole telefon tylko liczby
Pole e-mail musi być poprawnym adresem (jest do tego funkcja sprawdzająca)
Jeżeli zaznaczony został produkt (w zielonym formularzu) to pole ilość sztuk które się pokazuje nie może być puste i w ilości sztuk mogą być tylko liczby.
W wysyłce nie może zostać wybrana pierwsza opcja (ta "-- wybierz sposób wysyłki --").
Wszystkie funkcje wydaje mi się są dobrze napisane, tylko chyba nie potrafie tego sensownie połączyć.
Z góry dziękuje z apomoc.
Kod pliku zamowienie.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl"> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2" /> <meta http-equiv="content-language" content="pl" /> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <form method="post" action="" onsubmit="return isOk(this)"> <table class="dane" cellspacing="0"> <tr> </tr> <tr> </tr> <tr> </tr> <tr> </tr> <tr> </tr> <tr> </tr> <tr> </tr> <tr> </tr> </table> <!-- ####### PRODUKTY ######### --> <table class="produkty" cellspacing="0"> <tr> </tr> <tr> <td> <span id="produkt1" style="display:none;"> <input name="ilosc_produkt1" type="text" /> sztuk </span> </td> </tr> <tr> <td> <span id="produkt2" style="display:none;"> <input name="ilosc_produkt2" type="text" /> sztuk </span> </td> </tr> <tr> <td> <span id="produkt3" style="display:none;"> <input name="ilosc_produkt3" type="text" /> sztuk </span> </td> </tr> <tr> <td> <span id="produkt4" style="display:none;"> <input name="ilosc_produkt4" type="text" /> sztuk </span> </td> </tr> <tr> <td> <span id="produkt5" style="display:none;"> <input name="ilosc_produkt5" type="text" /> sztuk </span> </td> </tr> </table> <div> <select name="sposob_wysylki" > </select> </div> </form> </body> </html>
Kod pliku skrypty.js
Kod
// JavaScript Document
//FUNKCJA POKAZUJE POLE ILOŚĆ ZAMAWIANYCH SZTUK DANEGO PRODUKTU
function PokazRadio1(frm,polej,idsp)
{
if(polej.checked)
{
document.getElementById(idsp).style.display=""
}
else
{
document.getElementById(idsp).style.display="none"
}
}
// SPRAWDZACZE POPRAWNOŚCI DANYCH OSOBY### START ###
function isOk(f)
{
if(
isEmpty(f.imie,"imię") &&
isEmpty(f.nazwisko,"nazwisko") &&
isEmpty(f.ulica,"ulica") &&
isEmpty(f.nr_domu,"nr_domu") &&
isEmpty(f.miasto,"miasto") &&
isEmpty(f.kod_pocztowy,"kod pocztowy") &&
isEmpty(f.telefon,"telefon") &&
isEmpty(f.email,"adres e-mail")
)
return true;
else
return false;
}
// sprawdza, czy podana wartość jest pusta, lub zawiera tylko białe znaki
function isEmpty(val,pole)
{
if (val.match(/^s+$/) || val == "")
{
alert ("Błąd! Pole: "+pole+" nie może zostać puste");
val.focus();
return false;
}
else
{
return true;
}
}
// sprawdza, czy podana wartosc jest liczbą
function isNumber(val,pole)
{
if (isNaN(val))
{
alert ("Błąd! W Polu "+pole+" możesz wpisać tylko liczby");
val.focus();
return false;
}
else
{
return true;
}
}
// sprawdza, czy wszystkie znaki są literami
function isAlphabetic(val,pole)
{
if (val.match(/^[a-zA-Z]+$/))
{
return true;
}
else
{
alert ("Błąd! W polu: "+pole+" możesz wpisać tylko litery");
val.focus();
return false;
}
}
// sprawdza, czy przesłane dane zawierają tylko litery i cyfry
function isAlphaNumeric(val,pole)
{
if (val.match(/^[a-zA-Z0-9]+$/))
{
return true;
}
else
{
alert ("Błąd! W polu "+pole+" możesz wpisać tylko liczby i litery");
val.focus();
return false;
}
}
function isEmailAddress(val)
{
if (val.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/))
{
return true;
}
else
{
print ("Błąd! Podany przez Ciebie e-mail jest niepoprawny");
val.focus();
return false;
}
}
//FUNKCJA POKAZUJE POLE ILOŚĆ ZAMAWIANYCH SZTUK DANEGO PRODUKTU
function PokazRadio1(frm,polej,idsp)
{
if(polej.checked)
{
document.getElementById(idsp).style.display=""
}
else
{
document.getElementById(idsp).style.display="none"
}
}
// SPRAWDZACZE POPRAWNOŚCI DANYCH OSOBY### START ###
function isOk(f)
{
if(
isEmpty(f.imie,"imię") &&
isEmpty(f.nazwisko,"nazwisko") &&
isEmpty(f.ulica,"ulica") &&
isEmpty(f.nr_domu,"nr_domu") &&
isEmpty(f.miasto,"miasto") &&
isEmpty(f.kod_pocztowy,"kod pocztowy") &&
isEmpty(f.telefon,"telefon") &&
isEmpty(f.email,"adres e-mail")
)
return true;
else
return false;
}
// sprawdza, czy podana wartość jest pusta, lub zawiera tylko białe znaki
function isEmpty(val,pole)
{
if (val.match(/^s+$/) || val == "")
{
alert ("Błąd! Pole: "+pole+" nie może zostać puste");
val.focus();
return false;
}
else
{
return true;
}
}
// sprawdza, czy podana wartosc jest liczbą
function isNumber(val,pole)
{
if (isNaN(val))
{
alert ("Błąd! W Polu "+pole+" możesz wpisać tylko liczby");
val.focus();
return false;
}
else
{
return true;
}
}
// sprawdza, czy wszystkie znaki są literami
function isAlphabetic(val,pole)
{
if (val.match(/^[a-zA-Z]+$/))
{
return true;
}
else
{
alert ("Błąd! W polu: "+pole+" możesz wpisać tylko litery");
val.focus();
return false;
}
}
// sprawdza, czy przesłane dane zawierają tylko litery i cyfry
function isAlphaNumeric(val,pole)
{
if (val.match(/^[a-zA-Z0-9]+$/))
{
return true;
}
else
{
alert ("Błąd! W polu "+pole+" możesz wpisać tylko liczby i litery");
val.focus();
return false;
}
}
function isEmailAddress(val)
{
if (val.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/))
{
return true;
}
else
{
print ("Błąd! Podany przez Ciebie e-mail jest niepoprawny");
val.focus();
return false;
}
}