- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema prendere valore da checkbox
-
problema prendere valore da checkbox
ragazzi in questi due file non riesco a prendere in valore della checkbox, mi da questo errore:
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\componente\creaprofilo.php on line 24<?php mysql_connect('localhost', 'root' , '') or die('Non riesco a connettermi a MySQL'); mysql_select_db('componente') or die('Non riesco a connettermi al Database'); ?> <html> <head> </head> <body> <h1>CREA IL TUO PROFILO </h1> <form action="creaprofilo.php" method="post" > <?php ///$query ="Select * from categoria where idpadre='2'"; $query="select * from categoria where idpadre='0' order by idcategoria"; $result = mysql_query($query); while($fetch=mysql_fetch_array($result)) { $query="select * from categoria where idpadre='".$fetch['idcategoria']."' order by idcategoria"; $risultato=mysql_query($query); echo "<b>".$fetch['nome']."</b><br>"; while($array=mysql_fetch_array($risultato)) { //echo $array['nome']."<br>"; echo $array['nome']; echo ' <input type="checkbox" name="checkbox" value="'.$array['id'].'" /><br />'; } } ?> <input name="" type="submit"> </form>
<?php //Includo i file per la connessione //e per la verifica Utente require_once('connessione.php'); require_once('verificalogin.php'); if(isset($_SESSION['utente'])){ $user=$_SESSION['utente'][0]; //echo $user; $query1 = "SELECT * FROM utente WHERE username = '$user'"; $result1 = mysql_query($query1) or die("Errore nella query1:".mysql_error()); $row = mysql_fetch_assoc($result1); $idutente = $row['idutente']; $menu= $_POST['checkbox']; foreach ($menu as $value) { echo "<b>$value</b> <br>"; $dataEora = date("Y-m-d H:i:s"); $strSQL = "INSERT INTO seleziona(idcategoria,idutente,dataora)"; $strSQL .= "VALUES('$value','$idutente','$dataEora')"; mysql_query($strSQL)OR die("Errore nella query:".mysql_error()); } echo "<br>PROFILO COMPILATO CON SUCCESSO!!!"; } ?>
-
Se hai dei checkbox devi chiamarli tutti diversi (normalmente si mette un prefisso tipo chk e un id, quindi saranno chk001 chk002).
Poi quando li leggi devi controllare
if (isset($_GET['chk001']))
echo "SELEZIONATO";
else
echo "NON SELEZIONATO";
-
dove devo chiamarli diversi?
-
non ho capito come fare mi puoi fare un esempio
-
In questa riga:
<input type="checkbox" name="checkbox" value="'.$array['id'].'" /><br />';
Tu li chiami sempre checkbox. Invece devi chiamarlo ognuno con un valore diverso (non il value ma il name), ad esempio:
<input type="checkbox" name="checkbox'.$array['id'].'" /><br />';
A questo punto nella seconda pagina devi verificare se isset() di quel nome.
-
ciao senamion, se io ho:
echo '<input name='.$array['titolo'].' type="checkbox" value="'.$array['titolo'].'" />';
nell'altra pagina metto?è corretto?:
[php]
$prova = $_POST[$array['titolo']];
$casella = $prova ? 'selezionata' : 'non selezionata';if($casella=="selezionata"){ echo "$prova"; } else{ echo "errore"; }
[/php]
-
Se $array è alimentato allo stesso modo è corretto quello che hai scritto, anzi, correggi questa riga così:
$casella = isset($prova) ? 'selezionata' : 'non selezionata';