Hejka,
jak zrobić walidacje formularza tak żeby po za komunikatem typu 'nie wypełniony np nick' zaznaczał pola nie wypełnione zmieniając czcionkę danego pola na czerwono.
Wtedy wystarczył by jeden komunikat 'proszę uzupełnić pola zaznaczone na czerwono'
W tej chwili mój formularz wygląda następująco:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<TITLE>System Ogłoszeń</TITLE>
</HEAD>
<BODY>
<H2>Ogłoszenia</H2>
<?php
mysql_connect ("*****", "osobliwi5", "*****") or
//staramy połączyć się z bazą danych die ("Nie można połączyć się z bazą MySQL"); //jeżeli to się nie uda wyświetlamy die ("Nie można połączyć się z bazą ogloszenia"); mysql_query("SET collation_connection = utf8_polish_ci"); $id=$_GET["id"];
$tresc = $_POST["tresc"];
$stanowisko = $_POST["stanowisko"];
$nazwa_firmy = $_POST["nazwa_firmy"];
$miejscowosc_zatrudnienia = $_POST["miejscowosc_zatrudnienia"];
if(!isset($_GET["id"])) { //odbieramy wartość zmiennej id print"<A HREF=\"index.php?id=nowy\">Dodaj nowe Ogłoszenie</A><HR>"; //jeżeli zmienna id nie ma przypisanej wartości $wynik = mysql_query ("SELECT * FROM ogloszenia WHERE zatwierdz=1 order by nr desc;"); //wybieramy zatwierdzone ogłoszenia i segregujemy według pola nr od wartości największej do najmniejszej while ($rekord = mysql_fetch_array ($wynik, MYSQL_NUM
)) { //mysql_fetch_array() zwraca nam tablicę indeksowaną numerycznie, gdzie indeks zaczyna się od 0 (MYSQL_NUM) print "<LI>".$rekord[2
] = stripslashes($rekord[2]).", <B> ".$rekord[1
] = stripslashes($rekord[1])."</B>, ".$rekord[3].", ".$rekord[5
] = stripslashes($rekord[5]).", ".$rekord[6
] = stripslashes($rekord[6])."</LI>"; //w pętli while wyświetlamy po kolei wszytskie ogłoszenia w kolejności treść, stanowisko (stanowisko), data }
}elseif ($_GET["id"]=='nowy') { //jeżeli zmienna id zawiera wyraz nowy
print "<HR>"; //wyświetlamy formularz do wpisania ogłoszenia print "<H3>Nowe ogłoszenie:</H3>"; print "<FORM METHOD=POST action=\"index.php?id=dodaj\"><INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"dodaj\">"; print "<B>Nazwa firmy:</B><BR><INPUT TYPE=\"text\" NAME=\"nazwa_firmy\" VALUE=\"$nazwa_firmy\" SIZE=60><BR>"; print "<B>Miejscowość zatrudnienia:</B><BR><INPUT TYPE=\"text\" NAME=\"miejscowosc_zatrudnienia\" VALUE=\"$miejscowosc_zatrudnienia\" SIZE=60><BR>"; print "<B>Stanowisko:</B><BR><INPUT TYPE=\"text\" NAME=\"stanowisko\" VALUE=\"$stanowisko\" SIZE=60><BR>"; print "<B>Treść ogłoszenia:</B><BR><TEXTAREA NAME=\"tresc\" "; print "ROWS=10 COLS=60>$tresc</TEXTAREA><BR>"; print "<INPUT TYPE=\"submit\" VALUE=\"Wyslij\">"; print "<a href=\"index.php\">Powrót</a>"; }elseif ($_GET["id"]=='dodaj') { // jeżeli zmienna id zawiera wartość dodaj
//dodajemy ogłoszenie do bazy
$tresc = addslashes(nl2br(htmlentities ($tresc))); //ponieważ nie można ufać danym wprowadzanym przez użytkowników funkcją addslashes dodajemy ukośniki () w miejscach gdzie napotkanym na apostrof (‘), usuwamy je potem funkcją stripslahes przy wypisywaniu komentarzy, dodatkowo funkcja nl2br zamienia znaki końca linii na tag br
if ($tresc = $_POST["tresc"] && $stanowisko = $_POST["stanowisko"]) { //jeżeli pola treść i stanowisko są uzupełnione
$zapytanie = "INSERT INTO ogloszenia (tresc, stanowisko, nazwa_firmy, miejscowosc_zatrudnienia, "." data) VALUES ('$tresc', '$stanowisko', '$nazwa_firmy', '$miejscowosc_zatrudnienia', "." now());";
$wynik = mysql_query ($zapytanie); //dodajemy wtedy dane do bazy wraz z aktualną datą i godziną – funkcja now() print"<H4>Twoje ogłoszenie zostało dodane do bazy. Ukaże się, gdy administrator je zatwierdzi</h4><br>"; //jeżeli wszystko przebiegnie bez problemów wyświetlamy komunikat print"<a href=\"index.php\">Powrót</a>"; }else{ //jeżeli jednak nie wyświetlamy stosowną informację
print"<h4>Pola stanowisko i treść muszą być wypełnione ! Kliknij wstecz w swojej przeglądarce i popraw te dane !</h4>"; }
}else { //jeżeli zmienna id zawiera inną wartość niż dodaj lub nowy wyświetlamy wszystkie zatwierdzone ogłoszenia
print"<A HREF=\"index.php?id=nowy\">Dodaj nowe ogłoszenia</A><HR>"; $wynik = mysql_query ("SELECT * FROM ogloszenia WHERE zatwierdz=1 order by nr desc;"); //wybieramy zatwierdzone ogłoszenia i segregujemy według pola nr od wartości największej do najmniejszej while ($rekord = mysql_fetch_array ($wynik, MYSQL_NUM
)) { //mysql_fetch_array() zwraca nam tablicę indeksowaną numerycznie, gdzie indeks zaczyna się od 0 (MYSQL_NUM) print "<LI>".$rekord[2
] = stripslashes($rekord[2]).", <B> ".$rekord[1
] = stripslashes($rekord[1])."</B>, ".$rekord[3].", ".$rekord[5
] = stripslashes($rekord[5])."</LI>"; //za pomocą pętli while wyświetlamy wszystkie rekordy, które zostały zatwierdzone (wartość pola zatwierdz wynosi 1) }
}
?>
</BODY>
</HTML>