Esempio con checkbox

DeAndreon

Utente Attivo
9 Giu 2009
39
0
0
Ciao a tutti! Vorrei sapere come poter creare un'interazione sulla proprietà checked di una checkbox. Ad esempio con il visualbasic è possibile fare degli if su questa proprietà del checkbox. Con php è possibile? Se non vi dispiace mi potete postare qualche esempio semplice? Sto alle prime armi! :D

Grazie tantissime!
 
ciao,
intendi questo?

PHP:
<?php
if(CONDIZIONE){
$check="checked";
}else{
$check="";
}

?>
  <input name="radiobutton" type="radio" value="radiobutton" <?php echo $check;?>>

in funzione di CONDIZIONE il radio vine selezionato o no
 
Grazie per la risposta! Cioè, intendo che la condizione sia proprio se un checkbox sia spuntato o meno. Si può fare? Se magari mi puoi postare qualche esempio così:D Ad esempio: if questa checkbox è spuntata, echo ("E' spuntata questa checkbox"). Esempio demente ma si può fare?
 
ciao

hai due strade

1. tramite php, dopo il submit valuti se $_POST['radiobutton'] è vuoto, cioè l'utente non l'ha selezionato, e quindi dai messaggio di errore e torni al form, con l'else gli fai fare quello che deve fare

2. tramite, almeno credo, con js fai in modo che il form non prenda il submit sinchè il check non sia selezionato visualizzando un alert
 
Ciao! Secondo me dovrei usare la prima strada. Mi puoi fare qualche esempio? Sto proprio all'inizio con il php:D
 
eccoti un piccolo esempio

pag form.htm
HTML:
<form action="invia.php" method="post" name="form1">
  <p>
    sei d'accordo?
    <input name="selezione" type="radio" value="1">
    si&nbsp;&nbsp;&nbsp;    
    <input name="selezione" type="radio" value="2">
no  </p>
  <p>
    <input name="invia" type="submit" id="invia" value="Invia">
</p>
</form>

pag invia.php
PHP:
<?php
if(!isset($_POST['selezione'])){//il radio non selezionato
	/*con l'istruzione sotto torno al form, ma non puoi scrivere
	messaggi perchè header deve venire prima di ogni output html*/
	header("Location: http://www.mio_sito.com/invia.php");
	/*se devo scrivere messaggi io, ma non so se è il modo migliore utilizzo
	echo "non hai selezionato sei d'accordo";
	echo "<meta http-equiv='Refresh' content='3; URL=invia.php'>";
	il valore 3 sono i secondi di attesa prima di essere reindirizzato
	qusta soluzione è comoda soprattutto se form e fase script php sono
	nella stessa pagina
	*/
}else{
//fai quello che devi fare
}
?>
 
Ciao! Grazie per l'esempio! L'ho analizzato e provato. Se seleziono sia si che no mi apre una pagina vuota. Non può essere che l'errore stia qui:

header("Location: http://www.mio_sito.com/invia.php");

dove al posto di invia.php dovrebbe esserci form.html?

L'if che selezione fa? Cioè :

if(!isset($_POST['selezione']))

in base a cosa fa il confronto? Se ratio è selezionato è vero e se no è falso? E !isset cos'è? Scusami se ti faccio tutte queste domande ma sto veramente all'inizio;)

E se vorrei fare quell'esempio col checkbox come mi dovrei comportare?
 
ciao
cominciamo con ordine:
Se seleziono sia si che no mi apre una pagina vuota
per forsa è vuota in quanto nell'else c'è solo un commento

al posto di
//fai quello che devi fare
prova a scrivere
echo "ho scelto $_POST['selezione']";
se premi invia si stampa ho scelto 1, se no ho scelto 2

L'if che selezione fa? Cioè :
if(!isset($_POST['selezione']))

l'if verifica che l'espessione/condizione sia TRUE o FALSE, in quasto caso verifica se ho fatto la mia scelta
il ! è un negazione per cui in parole povere verifica se hai selezionato si o no, se non li hai selezionati (!isset($_POST['selezione'])) corriponde a non selezionati) ti rimanda la form
l'unica osservazione (hai ragione) è che in header devi mettere il nome della pagina del form

header("Location: form.html");

quindi se premi invio senza aver selezionato uno dei due checkbox ti fa tornare indietro
riassumendo:
se selezioni o si o no hai la stampa, se non li selezioni torni al form
 
Grazie ancora del tuo aiuto! Ho inserito :

echo "ho scelto $_POST['selezione']";

nell'else e mi da questo errore il browser:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\invia.php on line 15

ecco il listato:

<?php
if(!isset($_POST['selezione'])){//il radio non selezionato
/*con l'istruzione sotto torno al form, ma non puoi scrivere
messaggi perchè header deve venire prima di ogni output html*/
header("Location: form.html");
/*se devo scrivere messaggi io, ma non so se è il modo migliore utilizzo
echo "non hai selezionato sei d'accordo";
echo "<meta http-equiv='Refresh' content='3; URL=form.html'>";
il valore 3 sono i secondi di attesa prima di essere reindirizzato
qusta soluzione è comoda soprattutto se form e fase script php sono
nella stessa pagina
*/
}else{

echo "ho scelto $_POST['selezione']";
}
?>

Quindi "$_POST['selezione']" mi restituisce il Value del checkbox? Così posso fare un if sul Value del checkbox nel caso sia l'1 selezionato oppure il 2? Giusto?
 
L'ho modificato così:

echo "ho scelto".$_POST['selezione'];

e funziona!:) E' la stessa cosa giusto?:)
Piano piano sto imparando:D

Mentre i checkbox(i quadratini che permettono di effettuare scelte multiple) come funzionano? Posso fare gli if su $_POST['selezione'] allo stesso modo?
 
ciao
la differenza tra i check (type radio) che abbiamo visto e quelli che chiedi (tipey checkbox) tu è la seguente:
ai primi si da un nome unico e permettono una scelta unica, se noti selezionandone uno si deseleziona l'altro
ai secondi si da ad ogni box un nome diverso (qualcono non lo fa ma non è un metodo corretto) e si utilizzano per selezioni del tipo
quale sono i tui hobby:
cinema
pizza
musica
ecc....
seleziona i tuoi hobby
(che quindi possono essere più di uno)
il metodo di verifica è simile, anche se un po' piu complesso, e generalmente si utilizza un sistema lato client (con js ad es) per verificare se uno abbia fatto almeno una scelta
 
scusa dimenticavo
io, ma non so se è il sistema migliore, concateno tutti i ckbx, che se non spuntati hanno valore vuoto

$verifica=$_POST['ckbx1'].$_POST['ckbx2'].$_POST['ckbx3];//eccetera

poi controllo la lunghezza di $verifica

if(strlen($verifica)>0){
//faccio quello che devo
}else{
echo "devi selezionare almeno un ceckbox";
// torno al form
}

scusa dimenticavo ancora
guarda questa "bibbia" secondo me chi si prepara a php dovrebbe CONOSCERLA

http://www.php.net/manual/it/index.php
 
Ultima modifica:
Grazie ancora! So la differenza tra un checkbox e un ratio però non sapevo che il controllo per i checkbox conviene farlo in lato client... Io sto imparando il php di base ma proprio base base che mi consenta di superare l'esame di maturità ma credo che lo approfondirò dopo perchè vedo che mi piace moltissimo:) Sicuramente studierò quella "bibbia" ma per il momento mi avvalgo del libro prestatomi dalla prof:D(che manco sa il php...).

Quindi siete il mio punto di riferimento:D E vi rigrazio tantissimo(soprattutto te borgo italia) per il vostro "pronto soccorso":D:fonzie:

Grazie ancora borgo italia! Ora mi devo cimentare nel collegare php con mysql perchè tanto questo chiederà l'esame(abbiamo visto le traccie degli anni passati;))!:)
 
in bocca al lupo (o altro modo non consono a questo forum)

p.s.
la "bibbia" è comoda soprattutto perche se in alto a dx scrivi la funzione che ti interessa e vedi tutto quello che serve
 

Discussioni simili