<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript"> $(document).ready(function(){
$("input[name=submit]").attr('disabled','disabled');
$("input[name=mailing]").change(function(){
if ($(this).is(':checked')) {
$("input[name=submit]").removeAttr("disabled");
}
else {
$("input[name=submit]").attr('disabled','disabled');
}
});
});
Taki skrypt w JavaScript (jQuery) zmieni przycisk w "nieklikalny" (taki, którego nie da się kliknąć), póki ktoś nie zaznaczy tego checkboxa.
Oczywiście to tylko dodatek, ale miły dla Twoich użytkowników.
Jeśli chodzi o PHP - oczywiście też musisz sprawdzić czy zostało zaznaczone ale szczerze to za późno jest jak dla mnie żeby czytać Twój kod.
Wyprzedzając trochę Twoje oczekiwania mniemam, że te dane i tak będziesz chciał jeszcze zwalidować (obowiązkowo e-mail jak dla mnie).
Dlatego z góry radzę napisać to trochę inaczej:
- kod odpowiedzialny za walidacje
- pętla wyświetlająca błędy
- jeśli błędów == 0 to wyślij i pokaż komunikat "Wysłano"
- jeśli błędów > 0 to pokaż formularz
Kod w dużym skrócie będzie wyglądał tak:
if (!isset($_POST[kurs
])) $errors[] = 'Nie wpisałeś nazwy kursu'; if (!isset($_POST[termin
])) $errors[] = 'Nie wpisałeś terminu';
itd.
Błędy wyświetlasz za pomocą.:
foreach($errors as $blad) {
echo "<p class="blad
">$blad</p> <br />"; }
Sprawdzasz liczbę błędów za pomocą
count.
W zależności od liczby błędów wysyłasz maila lub pokazujesz ponownie formularz (jeśli ponownie formularz to wszystkie błędy ładnie będą wyświetlone jedno po drugim). Warto dodać klase css dla tych błędów. Minimum na czerwono pokolorować. W przykładzie dałem klasę "blad".