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