Newsgroup: it.comp.www.php
Titolo: select php e javascript

Obiettivo:
Date due select (Provincie e Comuni), vorrei che dopo la selezione di
una provincia mi rimanga in comuni la lista dei comuni di quella
provincia. Di questa lista voglio mi venga salvato il codice
corrispondente e non la stringa.
Dove sono arrivato ora:
Riesco ad ottenere , dopo la selezione della provincia, i comuni
corrispondenti.
Cosa mi manca:
Vorrei che in "value" mi venisse salvato il valore del codice del
comune preso dal database.
Lo script:
Ho trovato tra i vostri consigli uno script che faceva al mio caso.
L'ho opportunamente modificato per ottenere una parte di quel che mi
serve. Ora, masticando poco il javascript, non so come procedere
oltre.
<SCRIPT language=JavaScript type=text/javascript><!--
<?
$query = mysql_query("SELECT provincia FROM comuni group by provincia
order by provincia");
while($row=mysql_fetch_array($query)){$provincie =
$provincie."'".$row[provincia]."',";}
$provincie = substr($provincie,0,-1);
?>
  var provincie = new Array(<?echo $provincie;?>);
<?
$query = mysql_query("SELECT * FROM comuni ORDER BY provincia,
comune");
while($row=mysql_fetch_array($query)){
$comuni = $comuni."{\"Comune\":\"".$row[comune]."\",
\"Prov\":\"".$row[provincia]."\"},";}
$comuni = substr($comuni,0,-1);
?>
  var comuni = new Array(<?echo "$comuni";?>);
function aggiornacomune() {
  x =
document.dati.provincia.options[document.dati.provincia.selectedIndex].value;
  document.dati.comune.selectedIndex = 0;
  document.dati.comune.options.length = 1;
  for(i=0; i< comuni.length; i++) {
    if ( (x=='') || (x == comuni[i].Prov) ) {
document.dati.comune.options[document.dati.comune.options.length] =
new Option(comuni[i].Comune + ' ('+ comuni[i].Prov + ')',
comuni[i].Comune);
    }
  }
}
function aggiornaprov() {
  x =
document.dati.comune.options[document.dati.comune.selectedIndex].value;
  y = '';
  for(i=0; i< comuni.length; i++) {
    if (x == comuni[i].Comune) {
            y = comuni[i].Prov;
    }
  }
  z = 0;
  for(i=1; i < document.dati.provincia.options.length; i++) {
          if(document.dati.provincia.options[i].value == y ) {
                  z=i;
          }
  }
  document.dati.provincia.selectedIndex = z;
}
//--></SCRIPT>
<table>
    <tr>
      <td><div align="right"><font color="#FFFFFF" size="2"
face="Verdana, Arial, Helvetica,
sans-serif">Provincia:</font></div></td>
      <td colspan="3"><SELECT onchange=aggiornacomune();
name=provincia>
          <OPTION value="" selected>(Tutte le provincie)</OPTION>
        </SELECT> <SCRIPT language=JavaScript
type=text/javascript><!--
for(i=0; i<provincie.length; i++) {
document.dati.provincia.options[document.dati.provincia.options.length]
= new Option(provincie[i], provincie[i]);
}
aggiornacomune();
//--></SCRIPT></td>
    </tr>
    <tr>
      <td><div align="right"><font color="#FFFFFF" size="2"
face="Verdana, Arial, Helvetica, sans-serif">Comune:</font></div></td>
      <td colspan="3"><select onChange=aggiornaprov(); name=comune>
          <option value="" selected>- Scegli il comune -</option>
        </select> </td>
    </tr>
    <tr>
      <td><div align="center">
          <input type="submit" name="Submit" value="   Avanti   ">
        </div></td>
    </tr>
  </table>

Fatto, Non mi ero accorto che Options() ha tra i valori values.
Che pollo !
Ilic.

Dovresti scrivermi come sono le tabelle dalle quali vuoi estrapolare i
risultati perchè altrimenti non so come farti la query.
Ciao!
f.r.
"Ilic" <news...@NOSPAMinternet-milano.it> ha scritto nel messaggio
news:4clshv0m4du8qusoe...@4ax.com...
