Controllo php su checkbox

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
Buonasera, tra i mille problemi che mi creo ne ho uno che è una vita che sto cercando di risolvere ma non ne vengo a capo. Ho guardato online decine di guide ed ognuna ha un metodo diverso, perciò non riesco ad applicare questo benedetto controllo. Vengo al dunque ,io ho in un form un semplicissimo campo con checkbox così fatto
HTML:
<div style="margin:2px 0px 6px;">
				<input type="checkbox" name="checkbox[]" id="checkbox1" tabindex="5" value="Matrimonio" style="margin-top:5px;" />
				<label for="richiesta" class="checkbox">Matrimonio</label><br>
				<input type="checkbox" name="checkbox[]" id="checkbox2" tabindex="6" value="Eventi" style="margin-top:5px;"/>
				<label for="richiesta" class="checkbox">Eventi (Feste e Compleanni)</label><br>
				<input type="checkbox" name="checkbox[]" id="checkbox3" tabindex="7" value="Karaoke" style="margin-top:5px;"/>
				<label for="richiesta" class="checkbox">Karaoke</label><br>
				<input type="checkbox" name="checkbox[]" id="checkbox4" tabindex="8" value="Altro" style="margin-top:5px;" required/>
				<label for="richiesta" class="checkbox">Altro</label><br>
			</div>
ed un misero controllo dei campi fatto così
PHP:
if(isset($_POST['checkbox']) && $_POST['checkbox'] == ""){
		$formok		=	false;
		$errors[]	=	"Non hai selezionato il tipo di richiesta.";
	}
Il problema è che scrivendo in html5 di suo ha un controllo in JS e non riesco a modificare nulla. In più quando visualizzo il sito con ie8 non essendo compatibile con html5 praticamente è uno schifo, ed al momento di inviare il form senza alcuna checkbox selezionata mi da errore
PHP:
Undefined index: checkbox in contatti.php on line 150
che poi è questa riga
PHP:
$richiesta	=	$_POST['checkbox'];
. Correggenola così
PHP:
if (isset($_POST['checkbox'])) {$richiesta	=	$_POST['checkbox'];}
non da errori. E' corretto? Come posso fare il controllo delle checkbox.
Grazie sin da ora a chiunque mi voglia aiutare.:hammer::eek:
 
ciao
prova questo schema

PHP:
<?php
if(isset($_POST['invia'])){
	$ch=0;
	if(is_array($_POST['checkbox'])){
		foreach($_POST['checkbox'] as $chiave => $valore){
			if($valore !=""){$ch++;}
		}
	}
	if($ch==0){
		echo "devi selezionare almeno un check<br />";
	}else{
		echo "hai selezionato $ch check<br />";
	}
}
?>
<form action="" method="post">
				<input type="checkbox" name="checkbox[]" id="checkbox1" tabindex="5" value="Matrimonio" style="margin-top:5px;" />
				<label for="richiesta" class="checkbox">Matrimonio</label><br>
				<input type="checkbox" name="checkbox[]" id="checkbox2" tabindex="6" value="Eventi" style="margin-top:5px;"/>
				<label for="richiesta" class="checkbox">Eventi (Feste e Compleanni)</label><br>
				<input type="checkbox" name="checkbox[]" id="checkbox3" tabindex="7" value="Karaoke" style="margin-top:5px;"/>
				<label for="richiesta" class="checkbox">Karaoke</label><br>
				<input type="checkbox" name="checkbox[]" id="checkbox4" tabindex="8" value="Altro" style="margin-top:5px;" >
				<label for="richiesta" class="checkbox">Altro</label><br>
				<input name="invia" type="submit" id="invia" value="invia">
</form>
 

Discussioni simili