Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Checkbox come array

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654

    Checkbox come array

    Da un form faccio passare delle checkbox sottoforma di array, ovvero:

    Codice PHP:
    $selezionato=$_POST["selezionato"]; 
    Se la checkbox è stata spuntata, eseguo lo script. Per controllarlo ho usato questo codice:

    Codice PHP:
    if($selezionato[$n])
      
    //eseguo lo script
    //$n è un numero progressivo, all'interno di un ciclo 
    Poniamo che vi siano solo due checkbox passate. Il problema è che mi considera sempre attiva la prima checkbox (in pratica a "on") e sempre disattivata la seconda (vuota), indipendentemente da quale checkbox spunto.
    Perchè non mette in attivo solo quella che seleziono?

  2. #2
    che name hai dato alle checkbox? ti ricordo che la forma corretta è questa

    <input type='checkbox' name='selezionato[]' value='1'>
    <input type='checkbox' name='selezionato[]' value='2'>

    etc etc
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Il codice per visualizzare le checkbox è di questo tipo:

    Codice PHP:
    while($row=mysql_fetch_array($query)){
    echo 
    "<input type=\"checkbox\" name=\"selezionato[]\" />
    <input type=\"hidden\" name=id[] value=\""
    .$row["id"]."\" />";
    //In pratica nel POST passo la checkbox e un identificatore del record


    Invece nella pagina passata:

    Codice PHP:
    $selezionato=$_POST["selezionato"];
    $id=$_POST["id"];

    for(
    $n=0$n<sizeof($id); $n++){
       if(
    $selezionato[$n]){
          
    //query con l'id passato
          
    $q="select * from articoli where id=".$id[$n]." order by titolo";
          
    //ecc.
       
    }

    L'avevo fatto senza l'elemento di value... è necessario? Non dovrebbe impostare da solo un valore alla checkbox, a seconda che sia spuntata o meno? (è la prima volta che uso una checkbox sottoforma di array).
    E' come se, spuntando la checkbox, prendesse comunque tutti gli elementi in ordine (per questo tra due elementi, spuntandone uno solo, prende sempre il primo). Il problema è che non capisco perchè lo faccia

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Ho provato a fare un esperimento senza l'utilizzo di array, un semplice richiamo alla stessa pagina di questo tipo:

    Codice PHP:
    <? if(isset($_POST["colore"])){

    $colore=$_POST["colore"];

    for (
    $i=0$i sizeof($colore); $i++)
    {
    echo 
    $colore[$i]."
    "
    ;
    }

    }else{
    ?>

    <FORM METHOD="post" ACTION="prova.php">
    <INPUT NAME="colore" TYPE="checkbox" VALUE="rosso">
    <INPUT NAME="colore" TYPE="checkbox" VALUE="verde">
    <INPUT NAME="colore" TYPE="checkbox" VALUE="blu">
    <INPUT TYPE="submit">
    </FORM>

    <? ?>
    Se spunto più di una checkbox, mi visualizza come risultato soltanto il valore dell'ultima checkbox spuntata nell'ordine (es: spunto "rosso" e "verde" e mi restituisce "verde"). Tra l'altro, non mi restituisce neppure il valore completo, ma soltanto la prima lettera (cioè al posto di "verde" mi visualizza "v").
    Devo chiamare Mulder di X-Files per risolvere o c'è una spiegazione logica?

    Ho trovato un esempio a questo link:
    http://www.hwupgrade.it/forum/archiv.../t-723404.html
    ma il risultato è lo stesso del mio.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.