Popolare un Lista a Tendina Dinamicamente

  • Creatore Discussione Creatore Discussione peppoweb
  • Data di inizio Data di inizio

peppoweb

Utente Attivo
Ciao A tutti ho questo problema:
Io ho realizzato una pagina in cui ho un form con più campi. Per semplicità consideriamo di avere solo due campi:

- CAMPO TIPOLOGIA (Lista a Tendina)
- CAMPO FORMATO (Lista a Tendina)

I valori del campo TIPOLOGIA vengono definiti mediante una QUERY di questo tipo:

Codice:
$query_tipologia='SELECT * FROM `tipologia`';

Io ho bisogno di fare in modo che una volta selezionato il campo TIPOLOGIA venga popolato con i valori provenienti dalla seguente QUERY:

Codice:
$query_formato='SELECT * FROM `formato` WHERE `tipologia`=  [COLOR=red]VALORE CAMPO TIPOLOGIA[/COLOR]  ';

Come posso fare?
 
Ciao Peppe, sono poco pratico (per ora) col PHP ma posso dirti la filosofia di azione

<select>
<?
// lanci la query
// inizi il ciclo
?>
<option value="<?echo nomecampo?>"><?echo nomecampo?></option>
<?
// finisci il ciclo
?>
</select>

di più non so dirti ma spero lo stesso di esserti stato utile!
 
seguendo il metodo tradizionale dovrai ricaricare la pagina per eseguire la query sul DB in base al campo TIPOLOGIA selezionato e quindi popolare la seconda lista. Concettualmente:

1) popoli la prima lista in base alla query sulla tabella tipologia

2) l'utente seleziona la tipologia, ricarichi la pagina (onChange) passando nella query string il valore tipologia selezionato

3) quando ricarica sai qual'è il valore tipologia selezionato, quindi:

3.1) puoi ripopolare la lista tipologia sapendo su quale option devi mettere l'attributo "selected" (o eventualmente metti la sola option precedentemente selezionata e lasci il campo disabilitato, se non vuoi che l'utente modifichi).

3.2) fai la seconda query e popoli la seconda lista.


Qualcosa del genere (scrivo al volo):

Codice:
<select name="tipologia" onChange="location='thispage.php?tipologia='+this.value">
<option value="tipo1">Tipo 1</option>
<option value="tipo2">Tipo 2</option>
</select>

<select name="formato">
<?php
if ( !empty($tipologia) ) {
   // query
   // scorri risultati e stampa lista
}
?>
</select>


Occhio: se hai altri campi nel form, devi passarli tutti quando ricarichi la pagina sennò perdi i valori che l'utente ha già inserito.

Ciao
 

Discussioni simili