Newsgroup: it.comp.www.php
Titolo: AIUTO dropdown dinamiche php+javascript

Ragazzi vi prego aiutatemi.
E' 2 giorni che mi sbatto per trovare una soluzione a un problema:
dovrei creare 2 dropdown dinamiche in php che al selezionare un
opzione della prima cambia le opzioni della seconda . per es. nella
prima ci sono gli stati del mondo: italia francia spagna etc... e
nella seconda (in base allo stato selezionato le varie città)... nella
prima italia e nella seconda milano, roma ... ovviamente se scelgo
spagna nella prima nella seconda barcellona, madrid.. .
Gli stati sono contenuti in una tabella e le città referenziate in
base all'id dello stato in un'altra. Leggendo altri post alcune
persone consigliano di unire javascript a php , ma vi assicuro ho
provato tutto quello che ho potuto provare (array ...) se qualche
anima pia ha affrontato qualcosa di simile e mi vuole aiutare
.....GRAZIE .

 spagna nella prima nella seconda barcellona, madrid.. .
Dunque, le possibilità di risolvere il tuo problema sono 2:
1 - senza JS
2 - con JS
Nel primo caso è tutto molto semplice. Ti basta riempire la SELECT delle
nazioni e lasciare vuota quella delle città. Una volta selezionata una
nazione fai ricaricare la pagina, intercetti la nazione scelta e riempi la
SELECT delle città.
E' la soluzione più semplice, ma richiede che la pagine venga ricaricata.
Nel secondo caso la cosa è un pò più complessa. Non entro troppo nel
dettaglio per non complicare troppo le cose.
Quello che devi fare è riempire la SELECT delle nazioni come prima.
Poi però devi crearti un file .js contenente un array con TUTTE le città.
A questo punto devi farti uno script JS in maniera che selezionando la
nazione, vengano prelevate tutte le città e riempita la relativa SELECT.
Ciao
Marco

 
E' sufficiente riempire il secondo menù utilizzando una variabile 
pescata dal primo.
Per es. 
"SELECT * FROM tabella WHERE nazione = '$nazione'"
Ovviamente $nazione è il valore preso dal primo menu a tendina.
Max
-- 
Se mi volete scrivere
massimo . ori @ aliceposta . it


La soluzione "perfetta" dovrebbe avere :
1) minimo tempo di attesa per l'utente (tutto in una pagina) senza 
infini array di TUTTI gli stati possibili già nel js
2) Alta usabilità (non ci dovrebbero essere ricaricamenti di pagina o 
tutte quelle operazioni che fanno dire all'utente "ed ora che succede???"
Per ottenere questo devi sbatterti un po' di più.
Tecnicamente:
1)LA tendina stati è generata dal PHP e fin qui tutto bene.
2)su onchange di tendina stati fai partire una query in una pagina php 
nascosta in un IFRAME (del tipo citta.php?nome_stato=spagna e query 
nella suddetta SELECT citta FROM mia_tabella_citta WHERE stato='spagna'
3) Aggiorni i risultati nella tendina citta perndendoli dall'iframe in 
qulche modo
- oppure
la tendina città è DIRETTAMENTE l'iframe.
Magari onsubmit copi il valore dell'iframe in un campo hidden della 
finestra principale...
Problemi da risolvere in ambo i casi, vedi tu.
Inoltre non dimenticare di mettere una scritta vicino alla tendina del 
tipo "ricerca città in corso"
da far sparire quando sono restituiti i risultati.
Non è banalissimo ma (fidati) se po' fa...
Ciao
Marcello


Questo e' un problema che da tempo non riesco a risolvere. Il tuo intervento
e' un raggio di sole nelle tenebre.
Domande:
1)E' possibile associare all'evento onchange uno script php come quando si
specifica in una form dopo la parola 'action'?
  Dal tuo intervento sembra di si ma a me non funziona.
  Ho il seguente file php:
  <html>
<head>
<title>Sans Titre</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="HAPedit 2.6">
</head>
<body bgcolor="#FFFFFF">
<?
echo("<form action=prova1.php name=tttt method=post>");
echo("<select name=ddddd size=1 onchange=prova2.php>");
echo("<option>Italia</option>");
echo("<option>Francia</option>");
echo("<option>Canada</option>");
echo("<option>Inghilterra</option>");
echo("</select>");
echo("<input type=submit name=tt />");
echo("</form>");
?>
</body>
</html>
quando vado a selezionare la voce dal campo select non va in esecuzione lo
script prova2.php
2)Cosa é un Iframe? Eventuali link su internet?
Ciao e grazie per il raggio di sole :-), Antonio

La tecnica che vuoi utilizzare ha un nome, si chiama "Remote Scripting" e ci
sono varie tecniche per usarla con PHP. La tecnica con IFrame funziona quasi
sempre solo con Internet Explorer. La cosa migliore secondo me è NON
scrivere il codice, ma usare uno script già fatto per gestire queste cose.
Il migliore secondo me è JSRS, scaricabile su 
www.ashleyit.com/rs/
. Un
esempio passo passo su come utilizzarlo con PHP lo puoi trovare su
http://www.pcquest.com/content/coding/103120202.asp
-- 
Ciao,
Giancarlo Di Massa
E-commerce: 
http://www.oneclick.it
Forum: 
http://www.oneclick.it/forum
Assistenza: tel/fax 899.221158