Ciao a tutti e scusate se riposto un problema simile ma sto impazzendo da giorni ormai e le sto provando tutte.
Sto cercando realizzare una select che viene creata in base ad alcuni dati presi dal DB.
La select si crea prendendo i dati dalla tabella anagrafica_aziendale (id_azienda, ragione_sociale) e vorrei rendere selezionata una certa voce in base al dato che si trova nel campo id_azienda_out della tabella carico_materiali (id_blocco, id_azienda_out) quindi se carico_materiali.id_azienda_out = anagrafica_aziendale.id_azienda creo l' attributo checked nella option.
Ho fatto 10mila controlli, stampato a video l' impossibile...i valori arrivano tutti ma non capisco perchè l' output viene cosi:Codice PHP:
/* eseguo la query per trovare id azienda e ragione sociale
nella tabella anagrafica_aziendale */
$select_query = "SELECT id_azienda, ragione_sociale FROM anagrafica_aziendale";
$find_id = "SELECT id_azienda_out
FROM carico_materiali
WHERE id_blocco ='".$_SESSION['id_blocco']."'";
$result = mysql_query($select_query);
$num = mysql_num_rows($result);
if ($num > 0)
{ //Inizializzo la variabile per l' attributo "selected"
$selected = Null;
//Apro la SELECT
echo '<select name="lista_aziende">';
//Creo un ciclo FOR per creare le opzioni della SELECT
for($x=0; $x<$num; $x++)
{ /* trovo il valore da mettere nell' option e la relativa etichetta */
$row = mysql_fetch_row($result);
/* recupero l' id che si trova nella prima colonna
della tabella anagrafica_aziendale */
$id_option = $row[0];
/* recupero l' etichetta che si trova
nella seconda colonna */
$etichetta = $row[1];
//se sto aggiornando i dati
if ($_SESSION["carico_mode"] == "update")
{ /* trovo il valore di id_azienda_out nella tabella
carico_materiali per equipararlo a id_azienda
della tabella anagrafica_aziendale */
$result_id = mysql_query($find_id);
$row_id = mysql_fetch_array($result_id);
/* Ad ogni ciclo controllo se
carico_materiali.id_azienda_out è =
a anagrafica_aziendale.id_azienda
e nel caso creo l' attributo html "selected"
*/
if ($row_id["id_azienda_out"] == $row[0])
{ $selected = "selected"; }
}
//creo il tag OPTION
echo "<option value=".$id_option." ".$selected.">".$etichetta."</option>"; }
//chiudo la select
echo '</select>';
}
Graziecodice HTML:<select name="lista_aziende"> <option value="1">Azienda 1 S.r.L</option> <option value="2" selected="">Azienda 2 S.r.L</option> <option value="3" selected="">Azienda 3 S.r.L S.n.C</option> <option value="4" selected="">Azienda 4 S.r.L</option> <option value="5" selected="">Azienda 5 S.r.L</option> <option value="6" selected="">Azienda 6 S.r.L</option> <option value="7" selected="">Azienda 7 S.n.C.</option> </select>
P.s. : Lo stesso script l' ho usato per creare un' altra select praticamente uguale, cambiano solo le stringhe SQL e la tabella dove prendo l' id di riferimento per creare l' attributo checked e funziona. Bah!