• User Attivo

    Come gestire la creazione dinamica di menu a tendina con SELECT.

    Ciao ragazzi 😄

    Sto provando a fare una semplice cosa: una selezione di 4 menu a tendina (i famosi SELECT in HTML) per permettere all'utente di selezionare nazione/regione/provincia/città.

    In base alla scelta fatta su "nazione" avrò una determinata lista di "regioni" e così via...

    Stavo seguendo questo tutorial ma non riesco a venirne a capo!
    http : // sviluppare-in-rete.blogspot....-dinamiche.html

    Anche se metto i miei dati di connessione al database e metto i giusti nomi dei campi e della tabella non riesco a visualizzare nessun valore dentro i SELECT.

    Qualcuno sa aiutarmi? :wink3:
    Ho cercato anche altri tutorial ma fanno tutti uso di JS o di altri linguaggi a me purtroppo sconosciuti (quello che ho postato mi è sembrato il più semplice)!

    Mi farebbe piacere se qualcuno mi aiutasse a risolvere la cosa

    Grazie a tutti :gthi:


  • User Attivo

    Ciao,
    io quando ne feci uno copia un tutorial ma faceva uso di JS.

    L'alternativa ottimale è utilizzare Joomla.

    Mi posteresti il codice che hai utilizzato comprese le query SQL.


  • User Attivo

    Ciao e grazie per avermi preso in considerazione 😄

    Joomla non fa al caso mio: il codice lo sto scrivendo io partendo da zero.

    Il codice usato è proprio quello che trovi nel link d'esempio.
    Le uniche cose che ho cambiato sono le pagine request.php e dbconfig.php

    REQUEST.PHP

    
    <?php
    require 'dbconfig.php';
    $conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die;
    mysql_select_db(DB_NAME) or die;
    //I valori in input vanno verificati
    //id deve essere un valore numerico
    $pid = (int)$_REQUEST['id'];
    //maschera  eventuali caratteri speciali in table 
    $tb = mysql_real_escape_string($_REQUEST['table'], $conn);
    
    switch($tb) {
    	case 'regioni':
    		$sql="SELECT country FROM cities ORDER BY country";
    		break;
    	case 'province':
    		$sql="SELECT region FROM cities WHERE country=$pid ORDER BY region";
    		break;
    }
    //Il primo elemento della risposta è il nome della tabella (= attributo ID del tag select)
    $out="$tb;";
    if($result = mysql_query($sql, $conn)) {
    	while ($row = mysql_fetch_row($result)) {
    		$out .= $row[0] . '|' . $row[1] . ';';
    	}
    }
    //Rimuove il carattere ; in coda
    echo rtrim($out, ';');
    ?>
    
    

    e poi... DBCONFIG.PHP

    
    <?php
    //Modify constants with data needed to access your own database
    define('DB_HOST','localhost');
    define('DB_NAME','bamba5');
    define('DB_USER','root');
    define('DB_PASSWORD','');
    ?>
    
    

    Dov'è che sbaglio?


  • User

    if($result =

    manca il secondo uguale

    ammesso che lo script funzioni 🙂