• User Attivo

    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!!!";
    
    
    
    
    
    
    }
    ?>
    
    

  • User Attivo

    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";


  • User Attivo

    dove devo chiamarli diversi?


  • User Attivo

    non ho capito come fare mi puoi fare un esempio


  • User Attivo

    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.


  • User Attivo

    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]


  • User Attivo

    Se $array è alimentato allo stesso modo è corretto quello che hai scritto, anzi, correggi questa riga così:

    $casella = isset($prova) ? 'selezionata' : 'non selezionata';