Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di J.C.
    Registrato dal
    Nov 2007
    Messaggi
    5

    Problemi con checkbox e $_POST

    In una pagina ho questo codice

    codice:
    <form method="post" action="punteggio.php?numero=<? echo "$numero" ?>">
    	<tr>
    		<td>
    			<input type="checkbox" name="c[1]" value="<?php echo "$row[p1]";?>"
    		</td>
    .......
    		<td>
    			<input type="checkbox" name="c[2]" value="<?php echo "$row[p2]";?>"
    		</td>
    .......................Ecc. ecc. .................
    <input type="submit" value="invia risposta" />
    </form>
    che mi rimanda alla pagina 'punteggio.php'.

    Questa è così:

    codice:
    <?php
    session_start();
    $numero=$_GET['numero'];
    $punti = $_SESSION[',punti'];
    $c = $_POST[c];
    		foreach ($c as $k => $value) {
    			$parz = $parz + $value;
    	}
    $tota = $punti + $parz;
    $_SESSION['punti'] = $tota;
    if ($numero < 38) {
    	header("Location: domande.php?numero=$numero");
    	}else{
    	header("Location: pagina.php"); 
    }
    ?>
    Se io nella prima pagina seleziono uno o più checkbox funziona tutto alla perfezione. Ma se non seleziono niente mi va in errore.
    La segnalazione è la seguente:
    codice:
    Warning: Invalid argument supplied for foreach() in /home/sicurezza/public_html/questionario/punteggio.php on line 6
    Come posso risolvere?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ..ovvio, perchè l'array è vuoto..
    Codice PHP:
    if ($c != "" ) {
            foreach (
    $c as $k => $value) {
                
    $parz $parz $value;
        }
        } else {
        echo 
    "array vuoto";
        } 

  3. #3
    Utente di HTML.it L'avatar di J.C.
    Registrato dal
    Nov 2007
    Messaggi
    5
    Grazie per la pronta risposta, telegio.
    Solo che io vorrei che fosse possibile anche non dare risposte.
    Nel qual caso come posso fare?

    Spiegando un po' meglio: il codice fa parte di un questionario. Per ogni risposta esatta viene assegnato un punto, per ogni risposta errata ne viene tolto uno. Quello che io vorrei è che in caso di nessuna risposta vengano assegnato 0 (zero) punti.

    Pensi che una soluzione (che adesso proverò) di questo tipo possa funzionare ?

    codice:
    if ($c != "" ) { 
            foreach ($c as $k => $value) { 
                $parz = $parz + $value; 
        } 
        } else { 
        $parz=$parz;
        }
    Tolleranza è ridere quando ti pestano i calli mentali.

  4. #4
    Utente di HTML.it L'avatar di J.C.
    Registrato dal
    Nov 2007
    Messaggi
    5
    Mi rispondo da solo:

    FUNZIONA!

    Grazie mille della dritta.
    Tolleranza è ridere quando ti pestano i calli mentali.

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591

    nell'else fai quello che ti pare..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.