Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    39

    combobox in cascata con mysql:

    ciao a tutti, vado subito al sodo:

    ho la tabella mysql store(id,continent,nation,country).

    Devo riempire dinamicamente 3 combobox
    1)continent visualizza i continenti in cui ho gli store
    2)nation visualizza le nazioni in cui ho gli store (in base al continente scelto prima)
    3)country visualizza le città dove ho gli store (in base alla nazione scelta prima).

    Mi funziona solo la prima, nelle altre due non sò come fare le query.

    Ecco il mio codice:

    <script type="text/javascript">
    function inviaCambiamenti(){
    document.form.action = "<? echo $PHP_SELF; ?>";
    document.submit();
    }
    </script>
    <h1>Store locator</h1>

    <form name="search" method="post" action="ricerca_store_ris.php">


    <h2>Select a store :</h2></p>



    Continent:</p>
    <select name="sel_continent" style="width:432" onchange="inviaCambiamenti()" >
    <option value="none" >select Continent</option><?

    $connessione = mysql_connect("localhost", "root", "password")
    or die("Connessione non riuscita");
    mysql_select_db("design");
    $query_continent="SELECT DISTINCT continent FROM store";
    $ris_continent = mysql_query($query_continent) or die("Query fallita");

    while($row_continent=mysql_fetch_array($ris_contin ent)){
    if($row_continent[0]!="null"){
    $continent = $row_continent[0]; /*variabile in cui voglio mettere il continente selezionato per fare la prossima query*/?>

    <option value='<? echo "$row_continent[0]" ?>'> <? echo "$row_continent[0]"; ?>

    </option>
    <?}}?>
    </select>



    Nation:</p>
    <select name="sel_nation" style="width:432" onchange="inviaCambiamenti()">
    <option value="none" >select Nation</option><?

    $connessione = mysql_connect("localhost", "root", "password")
    or die("Connessione non riuscita");
    mysql_select_db("design");
    $query_nation="SELECT DISTINCT nation FROM store where continent = '$continent'";
    $ris_nation = mysql_query($query_nation) or die("Query fallita");

    while($row_nation=mysql_fetch_array($ris)){
    if($row_nation[0]!="null"){
    $nation = $row_nation[0];/*variabile in cui voglio mettere la nazione selezionata per fare la prossima query*/?>

    <option value='<? echo "$row_nation[0]" ?>'> <? echo "$row_nation[0]"; ?>

    </option>
    <?}}?>
    </select>



    Country:</p>
    <select name="sel_country" style="width:432" >
    <option value="none" >select Country</option><?

    $connessione = mysql_connect("localhost", "root", "password")
    or die("Connessione non riuscita");
    mysql_select_db("design");
    $query_country="SELECT country FROM store where nation = '$nation'";
    $ris_country = mysql_query($query_country) or die("Query fallita");

    while($row_country=mysql_fetch_array($ris_country) ){
    if($row_country[0]!="null"){ ?>

    <option value='<? echo "$row_country[0]" ?>'> <? echo "$row_country[0]"; ?>

    </option>
    <?}}?>
    </select>

    <input type="reset" name="reset" value="reset">
    <input type="submit" name="lanciaform" value="start">

    </form>

    Sapreste dirmi per favore dove sbaglio?
    grazie mille a tutti in anticipo.
    Mauro81

  2. #2
    una cosa che ho visto cosi a occhio:

    LA CONNESSIONE
    codice:
    $connessione = mysql_connect("localhost", "root", "password")
    or die("Connessione non riuscita");
    mysql_select_db("design");
    va fatta una volta a inizio pagina, e nn di continuo.
    My Site E C

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    39
    Connessione multipla cancellata, grazie Ducklair.

    la pagina fa ancora quello che vuole, non so più dove sbattere la testa..

  4. #4
    anche se ho seri dubbi su come intendi usare questa pagina,
    eccoti il codice. vedi se cosi va.

    codice:
    <?
    $connessione = mysql_connect("localhost", "root", "password")
    or die("Connessione non riuscita");
    mysql_select_db("design");
    ?>
    <script type="text/javascript">
    function inviaCambiamenti(){
    document.form.action = "<? echo $PHP_SELF; ?>";
    document.submit();
    }
    </script>
    <h1>Store locator</h1>
    
    <form name="search" method="post" action="ricerca_store_ris.php">
    
    
    <h2>Select a store :</h2></p>
    
    
    
    Continent:</p>
    <select name="sel_continent" style="width:432" onchange="inviaCambiamenti()" >
    <option value="none" >select Continent</option>
    <?
    $query_continent="SELECT DISTINCT continent FROM store";
    $ris_continent = mysql_query($query_continent) or die("Query fallita");
    
    while($row_continent=mysql_fetch_array($ris_continent)){
    if($row_continent['continent']!="null"){
    $continent = $row_continent['continent']; /*variabile in cui voglio mettere il continente selezionato per fare la prossima query*/?>
    
    <option value='<?=row_continent['continent']?>'> <?=row_continent['continent']?>
    
    </option>
    <? } }?>
    </select>
    
    
    
    Nation:</p>
    <select name="sel_nation" style="width:432" onchange="inviaCambiamenti()">
    <option value="none" >select Nation</option><?
    if(@$_POST['sel_continent']!='none';){
    $continent=$_POST['sel_continent'];
    }
    $query_nation="SELECT DISTINCT nation FROM store where continent = '$continent'";
    $ris_nation = mysql_query($query_nation) or die("Query fallita");
    
    while($row_nation=mysql_fetch_array($ris)){
    if($row_nation['nation']!="null"){
    $nation = $row_nation['nation'];/*variabile in cui voglio mettere la nazione selezionata per fare la prossima query*/?>
    
    <option value='<?=$row_nation['nation'?>'> <?=$row_nation['nation']?>
    
    </option>
    <? } }?>
    </select>
    
    
    
    Country:</p>
    <select name="sel_country" style="width:432" >
    <option value="none" >select Country</option><?
    
    if(@$_POST['sel_nation']!='none';){
    $nation=$_POST['sel_nation'];
    }
    $query_country="SELECT country FROM store where nation = '$nation'";
    $ris_country = mysql_query($query_country) or die("Query fallita");
    
    while($row_country=mysql_fetch_array($ris_country)){
    if($row_country['country']!="null"){ ?>
    
    <option value='<?=$row_country['country']?>'> <?=$row_country['country']?>
    
    </option>
    <? } }?>
    </select>
    
    <input type="reset" name="reset" value="reset">
    <input type="submit" name="lanciaform" value="start">
    
    </form>
    cmq cosi dovrebbe fare quello che chiedi (penso)
    My Site E C

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    39
    non funziona , mi da un pò di errori:

    mi da un errore quà:
    <option value='<?=row_continent['continent']?>'> <?=row_continent['continent']?>


    un altro quà
    if(@$_POST['sel_continent']!='none'{

    ho anche dei dubbi sulla mia funzioncina javascript che aggiorna la combobox
    <select name="sel_nation" style="width:432" onchange="inviaCambiamenti()">

    function inviaCambiamenti(){
    document.form.action = "<? echo $PHP_SELF; ?>";
    document.submit();
    }

    che macello..

    grazie mille per la risposta.
    Mauro81.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    Originariamente inviato da mauro81
    non funziona , mi da un pò di errori:

    mi da un errore quà:
    <option value='<?=row_continent['continent']?>'> <?=row_continent['continent']?>


    un altro quà
    if(@$_POST['sel_continent']!='none'{
    Per questi due errori:
    nel primo manca il '$'
    codice:
    <option value='<?=$row_continent['continent']?>'> <?=$row_continent['continent']?>
    nel secondo hai messo un ';' che non ci vuole:
    Codice PHP:
    if($_POST['sel_continent']!='none'){ 
    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    39
    ho corretto gli errori e adesso la pagina parte, però fa la stessa cosa che faceva originariamente con il mio codice, cioè funziona solo la prima combobox dei continenti.

    mi sa che non aggiorna la pagina, o non so..

    Grazie per le risposte.

    mauro81.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.