Visualizzazione risultati 1 fino 11 di 11

Discussione: Problema menu di scelta e mysql

  1. #1
    L'avatar di makpaolo
    makpaolo non è connesso Utente storico
    Data registrazione
    08-05-2003
    Residenza
    Brescia ( prov.)
    Messaggi
    9,399

    Predefinito

    innanzitutto grazie anticipatamente a chi ha la soluzione!!!

    ecco su cosa non mi riesce di fare:
    in un form di iscrizione metto con scelta a "tendina" (<select>) i dati ricavati dall'sql , ovvero i nomi delle regioni, nel campo sucessivo dovrei, sempre tramite tendina, scegliere la provincia, e ancora sucessivamente il comune. io ho fatto così:
    echo"</select></td></tr>
    <tr><td>Regione</td><td><select name=regione>";
    $query=mysql_query("SELECT * FROM regioni");
    while($whi=mysql_fetch_row($query)) {
    echo"<option name=regione>$whi[1]<regione>";
    }

    echo"</select></td></tr>
    <tr><td>Provincia</td><td><select name=provincia>";
    $query1=mysql_query("SELECT * FROM provincia WHERE regione=$whi[1]");
    while($whi1=mysql_fetch_row($query1)) {
    echo"<option name=provincia>$whi1[1]<provincia>";
    }
    echo"</select></td></tr>
    <tr><td>Comune</td><td><select name=comune>";
    $query2=mysql_query("SELECT * FROM italia WHERE regione='$regione' and provincia='$provincia'");
    while($whi2=mysql_fetch_row($query2)) {
    echo"<option name=comune>$whi2[0]<comune>";
    }
    echo"</select></td></tr></form></table>";
    fatto così, le regioni sono ok, ma una volta scelta mi appare vuoto sia provincia che comune, ho provato a mettere dei pulsanti di conferma scelta per avviare le query sucessive ma nulla.

    Helpo me pleace thanks
    Se smetti di imparare e evolverti sei morto dentro

  2. #2
    Guest

    Predefinito

    Premetto che mysql lo conosco praticamente zero. Detto questo ti dico però cosa mi suggerisce la logica: è nel momento in cui carichi la pagina che lo script php viene mandato "in esecuzione", e tutte le variabili che nello script compaiono assumono i loro valori nel momento del caricamento della pagina. Quando vai a cambiare il valore da un menu a discesa, se fossimo in Access si genererebbe un evento a cui dovresti associare un codice, ma in php questo non accade, per cui non c'è modo di mandare nuovamente il codice in esecuzione senza un ri-caricamento della pagina stessa. Una volta che hai la pagina caricata è come se fosse puro e semplice HTML, non è come con un javascript che può interagire con la pagina stessa senza ricaricarla. Di conseguenza le variabili di provincia e comune assumono sempre il valore che deriva dalla regione che hai impostato nel momento del caricamento della pagina, dopo di che qualunque cambiamento farai sul menu a discesa che non manderà più in esecuzione il PHP non modificherà alcunchè nei contenuti della pagina, e tantomeno non popolerà il secondo e terzo menu a discesa sulla base del valore scelto col primo. Spero di essere stato abbastanza incasinato :o

    Credo che tu debba necessariamente utilizzare un metodo post, in modo che al cambiamento di regione si abbia un ri-caricamento della pagina con la variabile "regione" passata dalla tua casella a discesa alla seconda chiamata del php attraverso il suddetto metodo POST, il cui utilizzo si rende necessario alla luce del principio generale per cui una variabile definita in una pagina rimane definita solamente in quella pagina. Così dovrebbe funzionare :o

    (mi scuso per l'ignobile scempio fatto alla lingua italiana in questo mio messaggio, ma sono un po' di fretta; spero comunque di essere riuscito a farmi capire :o )

  3. #3
    L'avatar di makpaolo
    makpaolo non è connesso Utente storico
    Data registrazione
    08-05-2003
    Residenza
    Brescia ( prov.)
    Messaggi
    9,399

    Predefinito

    bodo grazie per la risposta, ho sistemato così per ora

    <tr><td>Regione</td><td><select name=regione value=$reg><option name=regione>$regione<regione>";
    $query=mysql_query("SELECT * FROM regioni");
    while($whi=mysql_fetch_row($query)) {
    echo"<option name=regione>$whi[1]<regione>";
    $reg=$regione;
    }
    echo"</select><input type=submit value=ok name=prov></td></tr>
    <tr><td>Provincia</td><td><select name=provincia><option name=regione>$provincia<regione>";
    if ($prov=='ok'){
    $query1=mysql_query("SELECT DISTINCT provincia FROM italia WHERE regione='$reg' ORDER BY provincia ");
    while($whi1=mysql_fetch_row($query1)) {
    echo"<option name=provincia>$whi1[0]<provincia>";
    $provi=$provincia;
    }
    }
    echo"</select><input type=submit value=ok name=comu></td></tr>
    <tr><td>Comune</td><td><select name=comune>";
    if ($comu=='ok'){
    $query2=mysql_query("SELECT comuni FROM italia WHERE regione='$regione' AND provincia='$provincia' ORDER BY comuni");
    while($whi2=mysql_fetch_row($query2)) {
    echo"<option name=comune>$whi2[0]<comune>";
    }
    }

    echo"</select></td></tr></form></table>";
    appena finisco se a qualcuno può servire passo anche l'sql con regioni provincie e comuni d'Italia
    Se smetti di imparare e evolverti sei morto dentro

  4. #4
    L'avatar di gve
    gve
    gve non è connesso Utente storico
    Data registrazione
    26-01-2003
    Residenza
    Brescia
    Messaggi
    2,964

    Predefinito

    Si, è esattamente come dice bodo, devi fare un form che richiami la pagina php, che quindi si ricarica e si aggiorna.
    L'inoltro del form alla pagina si può fare anche in modo automatico: anzichè inserire il solito bottone submit, metti nei select:
    <select ... onChange="javascript:document.formname.submit()"&g t;
    dove formname è il nome assegnato al form.
    | Regolamento del Forum | Regolamento di AlterVista | FAQ di AlterVista | Netiquette |

    GVE = GVE Virtual Extension
    AVCM #: 6637

  5. #5
    L'avatar di makpaolo
    makpaolo non è connesso Utente storico
    Data registrazione
    08-05-2003
    Residenza
    Brescia ( prov.)
    Messaggi
    9,399

    Predefinito

    Citazione Originalmente inviato da gve
    Si, è esattamente come dice bodo, devi fare un form che richiami la pagina php, che quindi si ricarica e si aggiorna.
    L'inoltro del form alla pagina si può fare anche in modo automatico: anzichè inserire il solito bottone submit, metti nei select:
    <select ... onChange="javascript:document.formname.submit()"&g t;
    dove formname è il nome assegnato al form.

    se metto <select name=regione onchange='javascript:document.regione.submit()'&gt ; non vè, è per gli apici semplici o document?
    Se smetti di imparare e evolverti sei morto dentro

  6. #6
    L'avatar di gve
    gve
    gve non è connesso Utente storico
    Data registrazione
    26-01-2003
    Residenza
    Brescia
    Messaggi
    2,964

    Predefinito

    Citazione Originalmente inviato da makpaolo
    se metto <select name=regione onchange='javascript:document.regione.submit()'&gt ; non vè, è per gli apici semplici o document?
    Così non va perchè regione è il nome del tag <select>, tu devi mettere il nome che assegni al tag <form> che racchiude il select, che deve essere diverso da quest'ultimo (è tutto il form che viene inviato, non puoi inviare solo un tag, la funzione javascript submit() non lo permette per quel che ne so). La funzione ha esattamente il ruolo di <input type="submit"> in un form, solo che è abbinata all'evento onchange="cambiamento contenuto di select" anzichè alla pressione del bottone.

    Per quanto riguarda gli apici in effetti credo che in html servano doppi, o che sia meglio usarli così, quindi sostituiscili; io uso sempre i doppi apici in questi casi, mi sono sbagliato nello scrivere, ti chiedo scusa.

    quindi, ad esempio:
    [code:1:ce8f7dee81]<form name="italia" method="post" action="italia.php">
    .
    .
    <select name=regione onchange="javascript:document.italia.subm it()">
    .
    .
    </form>[/code:1:ce8f7dee81]
    | Regolamento del Forum | Regolamento di AlterVista | FAQ di AlterVista | Netiquette |

    GVE = GVE Virtual Extension
    AVCM #: 6637

  7. #7
    L'avatar di makpaolo
    makpaolo non è connesso Utente storico
    Data registrazione
    08-05-2003
    Residenza
    Brescia ( prov.)
    Messaggi
    9,399

    Predefinito

    gve thanks, comunque il form è in un "echo" , perciò i doppi apici non li posso mettere, tengo la soluzione sopra con "i pulsantini di conferma" e vedo di trovare altri metodi
    Se smetti di imparare e evolverti sei morto dentro

  8. #8
    L'avatar di gve
    gve
    gve non è connesso Utente storico
    Data registrazione
    26-01-2003
    Residenza
    Brescia
    Messaggi
    2,964

    Predefinito

    Puoi metterli, basta che li sostituisci con \"
    | Regolamento del Forum | Regolamento di AlterVista | FAQ di AlterVista | Netiquette |

    GVE = GVE Virtual Extension
    AVCM #: 6637

  9. #9
    L'avatar di makpaolo
    makpaolo non è connesso Utente storico
    Data registrazione
    08-05-2003
    Residenza
    Brescia ( prov.)
    Messaggi
    9,399

    Predefinito

    Citazione Originalmente inviato da gve
    Puoi metterli, basta che li sostituisci con \"
    Ok ora posso nascondermi, non ci avevo pensato...... mi piglerei a calci!!!!

    gve grazie mille

    p.s. se hai un minibanner mandami un PM
    Se smetti di imparare e evolverti sei morto dentro

  10. #10
    Guest

    Predefinito

    scusate se faccio sempre pubblicità ma vorrei tornare utile in qualche modo ^_^

    http://php4all.altervista.org eheh

    ciauz!

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da makpaolo
    Citazione Originalmente inviato da gve
    Puoi metterli, basta che li sostituisci con \"
    Ok ora posso nascondermi, non ci avevo pensato...... mi piglerei a calci!!!!
    Io ho cominciato a rendermi conto del problema quando ho chiesto la validazione del W3C delle pagine del mio sito (sistemazione ancora incompiuta, ahimè). Non davo grande importanza a virgolette ed apici, ma nello standard HTML ci sono ogni volta che definisci un valore non numerico (ad esempio anche per i codici di colori esadecimali, che sono preceduti dal carattere #). E' stata una palla, ma per far contento il severo validatore ho dovuto riempire di \" tutti i codici PHP :o

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •