Salve, sto effettuando un progettino creando un'API per un db mysql.
Sto creando un form per la ricerca dei file nel db, ed avendo delle sottosezioni, volevo utilizzare una select dinamica per caricare delle sottoaree in base all'area scelta nella select precedente.
Ho utilizzato un esempio preso dal vostro sito ( http://javascript.html.it/articoli/l...t-dinamiche/2/ ) senza apportare nessunissima modifica per evitare problemi prima di poterlo adattare alle mie necessità.
Avendo un database, ho dovuto caricare l'array con un ciclo invece di dichiararla nel codice.
Purtroppo, nella seconda select, non mi compaiono le sottoaree e non riesco a trovare il motivo di tale errore...posto il codice in modo che qualcuno possa darci un'occhiata e spero in un suo consiglio o suggerimento thx
p.s. ometto la connessione al db perché non ho problemi con le altre operazioni, e le tabelle "area" e "sottoarea" hanno un ID univoco, un campo testo, e per la tabella "sottoarea" c'è una chiave esterna che corrisponde all'ID_area.
Codice PHP:
echo "<script type=\'text/javascript\'>";
/*
Script tratto dal libro "JavaScript and DHTML Cookbook" - Capitolo 8-13
Pubblicato da O'Reilly & Associates
Copyright 2003 Danny Goodman
Riprodurre questa nota per qualunque riutilizzo del codice.
*/
echo "var regiondb = new Object()";
$querycta = mysql_query("SELECT * FROM ct_area");
$arraypippo = "";
while ($row1 = mysql_fetch_assoc($querycta))
{
$arraypippo .= "regiondb[".$row1['nome_area']."] = [";
$queryctsa = mysql_query("SELECT * FROM ct_sotto_area where area = ".$row1['ID_area']);
$counter = 0;
while ($row2 = mysql_fetch_assoc($queryctsa))
{
$counter ++;
$tot = mysql_num_rows($queryctsa);
if ($counter < $tot) {
$arraypippo .= "{value: ".$row2['ID_sottoarea'].", text: ".$row2['nome_sottoarea']."},";
}else{
$arraypippo .= "{value: ".$row2['ID_sottoarea'].", text: ".$row2['nome_sottoarea']."}";
}
}
$arraypippo .= "]; ";
}
$jscript .="function setCities(chooser) {"
."var newElem;"
."var where = (navigator.appName == 'Microsoft Internet Explorer') ? -1 : null;"
."var cityChooser = chooser.form.elements['città'];"
."while (cityChooser.options.length) {"
."cityChooser.remove(0);"
."}"
."var choice = chooser.options[chooser.selectedIndex].value;"
."var db = regiondb[choice];"
."newElem = document.createElement('option');"
."newElem.text = 'Seleziona una città:';"
."newElem.value = '';"
."cityChooser.add(newElem, where);"
."if (choice != '') {"
."for (var i = 0; i < db.length; i++) {"
."newElem = document.createElement('option');"
."newElem.text = db[i].text;"
."newElem.value = db[i].value;"
."cityChooser.add(newElem, where);"
."}"
."}"
."}";
echo $arraypippo;
echo $jscript;
echo "</script>";
$es .= "
"
."<div align='center'>"
."<h1>Esempio - Select dinamiche</h1>"
."<hr>"
."<form name='form'>"
."Invia la richiesta a: "
."<select name='continente' onchange='setCities(this)'>"
."<option value='' selected='selected'>Seleziona un continente:</option>";
echo $es;
$querycta = mysql_query("SELECT * FROM ct_area");
while ($row = mysql_fetch_assoc($querycta))
{
echo "<option value = ".$row['nome_area']." >" .ucfirst($row[nome_area]). "</option>";
}
echo "</select>_";
echo "<select name='città'>";
echo "<option value='' selected='selected'>Seleziona una città:</option>";
echo "</select>";
echo "</form>";
echo"</div>";
Spero ricevere qualche consiglio per poter dormire tranquillo ed apprendere qualcosa di nuovo 
grazie a tutti