checkbox

buongiorno!

dunque, ho 2 tabelle:

tbl_lang_comics:

- id_lang_comics

- lang_comics_name

tbl_prod_lang

-  pd_id

- id_lang_comics

nella 1a tabella ho inserito le lingue disponibili per i prodotti.

nella 2a tabella ho inserito le lingue che ho scelto dalla lista della 1a tabella e assegnate all' id_ prodotto ( pd_id ).

adesso se volessi modificare il prodotto, vorrei che mi caricasse nella tabella html, tutte le lingue disponibili dalla tbl_lang_comics e però mi spuntasse quelle che sono già state assegnate al prodotto nella tbl_prod_lang. Questo perchè voglio avere la possibilità di far visualizzare le lingue che sono state scelte per il prodotto infase di creazione e togliere/aggiungere lingue al prodotto, in caso ce ne fosse bisogno in fase di modifica.

ho questo codice che però mi estrae sì tutte le lingue, ma mi spunta solo l'ultima:

<?php
 $sql = "SELECT * FROM tbl_lang_comics";
             $result = dbQuery($sql) or die('Cannot get Product. ' . mysql_error());
                while ($dati = mysql_fetch_array ($result)) {

         $sql2= "SELECT * FROM tbl_prod_lang";
             $result2= dbQuery($sql2) or die ('Cannot get Product. ' . mysql_error());
                while ($dati2 = mysql_fetch_array($result2)){
                    $id_lang = $dati2['id_lang_comics'];
              }
        $checked="";
          if ($dati['id_lang_comics']== $id_lang){
              $checked="checked";
       }

   echo"<input type=\"checkbox\" name=\"lingua[]\" value=\"{$dati['id_lang_comics']}\" {$checked}>".$dati['lang_comics_name'];
  }
?>
inviato 10 anni fa
iTek
iTek
1
X 0 X

L'approccio è sbagliato. Lancia prima una query che ti estrae tutte le lingue disponibili e le salva in un array associativo del tipo lingua_id => nome_lingua.

Fatto ciò lancia una query per recuperare le lingue associate ad un prodotto e salva gli ID in un altro array (2).

A questo punto con un ciclo (foreach as $key => $value) scorri tutto il primo array e mostra una checkbox per ogni lingua). Se la $key (che è l'id della lingua) è presente nell'array (2) allora la checkbox va spuntata.

Usa la $key anche per mettere un "value" alle checkbox in modo che se si selezionano e si fa il POST puoi modificare i dati nel DB circa le lingue associate al prodotto.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda