Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    11

    [php] Popolare array con checkbox

    Come faccio a popolare un array con dei checkbox
    Cosi scorro la query
    <form name="form1" method="post" action="pagina2.php">
    <?php
    while ($ris=mysql_fetch_array($dati)) {
    ?>
    <tr>
    <td>
    <input type="checkbox" name="presente[]" value="checkbox">
    <td><input type="text" name="nominativo[]" value="<?php echo $ris["cognome"]."".$ris["nome"]; ?>">
    </tr>
    </td>
    </form>

    Recupero i valori nella pagina2
    <?php
    $da=count($_POST[presente]);
    for ($i=0; $i<=$da; $i++)
    {
    $ch[$i] = $_POST[presente][$i];
    $nominativo[$i] = $_POST[nominativo][$i];
    }

    for ($i=0; $i<=$da; $i++)
    {
    if ($ch[$i]=="checkbox")
    {
    echo $nominativo[$i]."
    ";
    echo "-------"."
    ";
    }
    }
    ?>

    Vorrei stampare i valori checkati ma invece mi stampa
    $ch[0]
    $ch[1]
    $ch[2]
    $ch[N]
    quanti sono i check attivati.


  2. #2
    forse se indicizzi
    $counter = 1;
    while ($ris=mysql_fetch_array($dati)) {
    ?>
    <tr>
    <td>
    <input type="checkbox" name="presente[]" value="checkbox">
    <td><input type="text" name="nominativo<?php=$counter?>" value="<?php echo $ris["cognome"]." ".$ris["nome"]; ?>">
    </tr>
    </td>
    <?
    $counter++;

    }

    ?>
    </form>


    in questo ciclo
    for ($i=0; $i<=$da; $i++)
    {
    $ch[$i] = $_POST[presente][$i];
    $indice_nominativo = $i+1;
    $nominativo[$indice_nominativo] = $_POST["nominativo$indice_nominativo"];
    }


    for ($i=0; $i<=$da; $i++)
    {
    if ($ch[$i]=="checkbox")
    {
    $indice_nominativo = $i+1;
    echo $nominativo[$indice_nominativo]."
    ";
    echo "-------"."
    ";
    }

    }

    Non ho fatto girare il codice ma penso sia una soluzione.


    Ciao
    In a world without walls and fences - who needs windows and gates ?

  3. #3
    Utente bannato
    Registrato dal
    Apr 2003
    Messaggi
    1,119

    Re: [php] Popolare array con checkbox

    Originariamente inviato da Norma
    Come faccio a popolare un array con dei checkbox
    Cosi scorro la query
    Codice PHP:
    <form name="form1" method="post" action="pagina2.php">
    <?php 
    while ($ris=mysql_fetch_array($dati)) { 
    ?> 
    <tr> 
    <td>
    <input type="checkbox" name="presente[]" value="checkbox">
    <td><input type="text" name="nominativo[]" value="<?php echo $ris["cognome"]."".$ris["nome"]; ?>">
    </tr> 
    </td>
    </form>
    Recupero i valori nella pagina2
    Codice PHP:
    <?php
    $da
    =count($_POST[presente]);
    for (
    $i=0$i<=$da$i++)
    {
    $ch[$i] = $_POST[presente][$i];
    $nominativo[$i] = $_POST[nominativo][$i];
     }

    for (
    $i=0$i<=$da$i++) 

    if (
    $ch[$i]=="checkbox"
    {
    echo 
    $nominativo[$i]."
    "
    ;
    echo 
    "-------"."
    "
    ;
    }    
    }
    ?>
    Vorrei stampare i valori checkati ma invece mi stampa
    codice:
      
    $ch[0]
    $ch[1]
    $ch[2]
    $ch[N]
    quanti sono i check attivati.

    ma come fa a stampare '$ch[n]' se gli fai stampare $nominativo[...], e per di più ci aggiungi '----
    '?
    prova a guardare nel sorgente della pagina che crea...

  4. #4
    Utente bannato
    Registrato dal
    Apr 2003
    Messaggi
    1,119
    ah ho capito
    per prima cosa devi mettere gli apici alle chiavi degli array:
    $da=count($_POST['presente']);
    e non
    $da=count($_POST[presente]);

    poi i nomi dei checkbox non sono 'presente' e 'nominativo', ma 'presente[]' e 'nominativo[]'!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    11
    Il codice funziona se al posto di una checkbox metto un campo text.
    Perchè??? :master:

    Forse perchè una checkbox se non è check non da valore e quindi non popola l'array?




  6. #6
    Utente bannato
    Registrato dal
    Apr 2003
    Messaggi
    1,119
    sì in effetti è così

    checked: restituisce il suo valore
    non-checked: restituisce NULL (o forse FALSE, non mi ricordo)


    ma hai letto su? ^^
    ai nomi hai messo alla fine dei [], ti conviene toglierli, anche perchè nello script non li hai messi...

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    212
    +/-
    codice:
    <form name="form1" method="post" action="">
    <input type=submit name=submit value=submit>
    <table>
    <?php
    $i = 0;
    while ($ris=mysql_fetch_array($dati)) {
    ?>
    <tr>
    <td>
    <input type="checkbox" name="presente[<?=$i;?>]" value="1">
    <td><input type="text" name="nominativo[<?=$i;?>]" value="<?php echo $ris['cognome'] . '  ' . $ris['nome']; ?>">
    </tr>
    </td>
    <?php
        $i++;
    }
    ?>
    </table>
    </form>
    
    
    Recupero i valori nella pagina2
    
    <?php
    if (is_array($_POST['presente'])) {
        foreach ($_POST['presente'] as $k => $v) {
            print $_POST['nominativo'][$k] . '
    ';
        }
    } else {
        print 'seleziona almeno una voce';
    }
    ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    11
    Originariamente inviato da kuba
    +/-
    codice:
    <form name="form1" method="post" action="">
    <input type=submit name=submit value=submit>
    <table>
    <?php
    $i = 0;
    while ($ris=mysql_fetch_array($dati)) {
    ?>
    <tr>
    <td>
    <input type="checkbox" name="presente[<?=$i;?>]" value="1">
    <td><input type="text" name="nominativo[<?=$i;?>]" value="<?php echo $ris['cognome'] . '  ' . $ris['nome']; ?>">
    </tr>
    </td>
    <?php
        $i++;
    }
    ?>
    </table>
    </form>
    
    
    Recupero i valori nella pagina2
    
    <?php
    if (is_array($_POST['presente'])) {
        foreach ($_POST['presente'] as $k => $v) {
            print $_POST['nominativo'][$k] . '
    ';
        }
    } else {
        print 'seleziona almeno una voce';
    }
    ?>
    Funziona
    Adesso me lo studio un pò
    Grazie kuba sei mitico :sexpulp:

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.