Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    114

    creare checkbox a valori multipli

    Ho fatto una ricerca veloce e non mi pare di aver trovato nulla di simile.
    In pratica ho la necessità di passare tramite checkbox più parametri. Ovviamente serve che vengano passati solo i parametri associati ai checkbox selezionati.

    Poiché non so a priori quanti sono i checkbox selezionabili, per ricevere e quindi gestire i valori selezionati dai checkbox li ho inseriti in un array in questo modo (ovviamente vi ho risparmiato il valore degli id e del value che sono presi da un array bidimensionale):

    Codice PHP:
    echo "<input type=\"checkbox\" name=\"var_role[]\" id=\"".id_value."$i\" value=\"".value."\" /><label for=\"".id_value."$i\">".label.")</label>"
    Ho pensato di inserire un campo hidden, ma questo invia i dati sempre e comunque indipendentemente dal fatto che il checkbox sia o meno selezionato. Risulta perciò piuttosto arduo ricollegare i dati con quelli del proprio checkbox.

    Poi ho pensato di creare un checkbox nascosto (tramite i CSS) attivabile attraverso javascript nel momento in cui quello visibile fosse stato selezionato, ma il mio non ottimo feeling con javascript e la complessità della cosa mi hanno un po' scoraggiato.

    Ho pensato poi di inviare prima un array, poi un valore serializzato nel value del checkbox, in modo da potermi portare dietro più informazioni, ma un array o un elemento di serialize() non "passano" attraverso il value del checkbox.

    A questo punto non so più cosa inventarmi. Come posso passare più parametri per ogni checkbox con $POST?

  2. #2
    diciamo che tu per ogni id hai un valore del genere:

    Codice PHP:

    $arr 
    = array('id1' => array('chiave1' => 'valore1''chiave2' => 'valore2', ... )) 
    se te lo vuoi mettere in una checkbox unica devi serializzarti a mano l'array e metterlo nel value della checkbox, ad esempio:

    Codice PHP:

    $value_checkbox 
    '';

    foreach(
    $arr['id1'] as $key => $value)
        
    $value_checkbox .= "$key:$value";

    echo 
    '<input type="checkbox" value="'.$value_checkbox.'" />'
    e poi ti riprendi il valore selezionato e ricrei l'array...

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    114
    Originariamente inviato da Santino83_02
    diciamo che tu per ogni id hai un valore del genere:

    Codice PHP:

    $arr 
    = array('id1' => array('chiave1' => 'valore1''chiave2' => 'valore2', ... )) 
    se te lo vuoi mettere in una checkbox unica devi serializzarti a mano l'array e metterlo nel value della checkbox, ad esempio:

    Codice PHP:

    $value_checkbox 
    '';

    foreach(
    $arr['id1'] as $key => $value)
        
    $value_checkbox .= "$key:$value";

    echo 
    '<input type="checkbox" value="'.$value_checkbox.'" />'
    e poi ti riprendi il valore selezionato e ricrei l'array...

    in realtà non è la chiave che mi devo portare dietro, ma un altro valore! Comunqe come metodo mi sembra valido. Domani lo provo subito e poi riferirò.

    Intanto ringrazio per le soluzioni che mi sono state offerte!

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    114
    Non so per quale motivo, ma mi ha creato due discussioni con lo stesso titolo e lo stesso testo. Mi scuso per questo doppio thread, anche se non capisco il perché sia potuto succedere.

    Comunque tornando alla soluzione ho passato i parametri in questo modo:
    Codice PHP:
    $val $valore1."-".$valore2
    e li ho recuperati in questo modo:
    Codice PHP:
    foreach($var_role as $key => $value) { 
        
    $e_val explode("-"$value); 
        
    $var1 $e_val[1];
        
    $var2 $e_val[0]; 
    Grazie ancora dell'aiuto!

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.