• User Attivo

    Checkbox dinamiche

    Un saluto a tutti.
    Ho un problemino con delle check, vi spiego:
    ho dei dati nel db sotto la voce accessori

    [PHP]
    $a_articolo=explode(",", $articolo['accessori']);
    $a_nome_accessori = array('a1'=>'Abs','a2'=>'Esp','a3'=>'Airbag guidatore',
    'a4'=>'Airbag passeggero','a5'=>'Airbag laterale','a6'=>'Fendinebbia',
    'a7'=>'Chiusura centralizzata','a8'=>'Servosterzo','a9'=>'Alzacristalli elettrici',
    'a10'=>'Autoradio','a11'=>'Lettore cd','a12'=>'Comandi al volante',
    'a13'=>'Computer di bordo','a14'=>'City','a15'=>'Antifurto',
    'a16'=>'Clima digitale','a17'=>'Clima analogico','a18'=>'Cerchi in lega',
    'a19'=>'Immobilizzatore elettronico','a20'=>'Navigatore','a21'=>'Tetto panoramico',
    'a22'=>'Tetto apribile','a23'=>'Cruise control','a24'=>'Regolatore elettronico sedile',
    'a25'=>'Interni in pelle','a26'=>'Interni in alcantara','a27'=>'Sedili riscaldabili',
    'a28'=>'Barre tetto','a29'=>'Trazione integrale','a30'=>'Controllo trazione',
    'a31'=>'Sensori luci','a32'=>'Sensori pioggia','a33'=>'Sensori parcheggio anteriori',
    'a34'=>'Sensori parcheggio posteriori','a35'=>'Cambio manuale','a36'=>'Cambio automatico',
    'a37'=>'Fari xenon','a38'=>'Caricatore cd','a39'=>'Bluetooth',
    'a40'=>'Gancio traino','a41'=>'Adatto handicap');
    for($e=0; $e<count($a_articolo); $e++)
    {
    for($f=1; $f<42; $f++)
    {
    if($a_articolo==$a_nome_accessori["a". $f])
    {
    $a_cod_accessori[]="a". $f;
    }
    }
    }
    <td>
    <input type="checkbox" name="a2"
    <?php
    for($g=0; $g<count($a_cod_accessori); $g++)
    {
    if($a_cod_accessori=="a2")
    {
    print" checked";
    }
    }
    ?>

    </td>
    [/PHP]

    Con il codice sopra riportato il problema lo risolvo, ma mi toccherebbe scrivere 42 volte le righe del codice della check

    Invece adesso vi porgo l'altra cosa che vorrei fare se si può, diciamo che vorrei rendere le check dinamiche e con poche righe sostituire le 42

    [PHP]
    $a_articolo=explode(",", $articolo['accessori']);
    $a_optional=array('Abs', 'Esp', 'Airbag guidatore', 'Airbag passeggero', 'Airbag laterale', 'Fendinebbia',
    'Chiusure centralizzate', 'Servosterzo', 'Alzacristalli elettrici', 'Autoradio',
    'Lettore cd', 'Comandi al volante', 'Computer di bordo', 'City', 'Antifurto acustico',
    'Antifurto satellitare', 'Blockshaft', 'Clima digitale', 'Clima analogico', 'Cerchi in lega',
    'Immobilizzatore elettronico', 'Navigatore', 'Tetto panoramico', 'Tetto apribile',
    'Specchi laterali elettrici', 'Cruise control', 'Regolazione elettronica sedili',
    'Interni in pelle', 'Interni in alcantara', 'Sedili riscaldabili', 'Barre tetto',
    'Trazione integrale', 'Controllo trazione', 'Sensori luci',
    'Sensori pioggia', 'Sensori parcheggio anteriori', 'Sensori parcheggio posteriori',
    'Cambio manuale', 'Cambio automatico', 'Fari xenon', 'Caricatore cd', 'Bluetooth', 'Attacco usb',
    'Gancio traino', 'Adatto handicap');

    $lungh_array= count($a_optional);
    $riga=1;
    <table cellpadding='0' cellspacing='0' border='0' bordercolor='#23D527'>";
    for($f=0; $f<$lungh_array; $f++)
    {
    if($riga == 1)
    {
    print"<tr>";
    }
    if($a_optional == '$f[$a_optional . $f]')
    {
    print"
    <td width='200' class='testo'>
    <input type='checkbox' name='$f' checked='checked'>$a_optional
    </td>";
    }
    else
    {
    print"
    <td width='200' class='testo'>
    <input type='checkbox' name='$f'>$a_optional
    </td>";
    $riga++;
    }
    if($riga > 3)
    {
    print"</tr>";
    $riga=1;
    }
    }
    print"
    </table>
    [/PHP]

    Secondo me c'è qualche problema, potreste aiutarmi?
    Grazie spero di essere stato chiaro
    Danny:ciauz:


  • User Attivo

    Scusatemi, chiedo gentilmente ai moderatori di spostere questa discussione in php lato server, sono dispiaciuto ma non me ne ero accorto. Grazie:gtsad:


  • User Attivo

    @danny1975 said:

    Scusatemi, chiedo gentilmente ai moderatori di spostere questa discussione in php lato server, sono dispiaciuto ma non me ne ero accorto. Grazie:gtsad:

    Ti chiedo, descrivendo in poche righe, cosa vorresti fare perchè negli esempi non ho ancora percepito.


  • User Attivo

    Ciao, devo prendere dei dati dal db e verificarne l'esistenza, se "si" allora creami una check piena, se "no" creami una chek vuota
    ci sono 2 esempi, nel primo il problema è risolto, ma mi tocca scrivere questo codice tante volte fino a soddisfare il numero di accessori
    [HTML]<td>
    <input type="checkbox" name="a42" class="testo"
    <?php
    for($g = 0; $g < count($a_cod_accessori); $g++)
    {
    if($a_cod_accessori=="a42")
    {
    print" checked";
    }
    }
    ?>
    >
    </td>
    <td class="testo">
    Bluetooth
    </td>
    [/HTML]
    mentre nel secondo stavo cercando di evitare di scrivere tante volte le righe in modo da rendere il tutto più dinamico.
    Spero di essere stato chiaro anche se potrei fare di meglio
    Ciao da Danny:ciauz:


  • User Attivo

    Ciao,
    così.. su 2 piedi....

    scorri $a_optional -> controlli l'esistenza in $a_articolo con in_array ... se esiste crei la checkbox "ceccata" altrimenti la crei vuota...

    Dovrebbe funzionare...


  • User Attivo

    Ciao, sto facendo diversi tentativi, ma a farlo sembra più difficile che a dirlo, Grazie da danny:ciauz: