Precedente :: Successivo |
Autore |
Messaggio |
ladycrys Comune mortale
Registrato: 08/08/10 16:54 Messaggi: 3
|
Inviato: 08 Ago 2010 16:59 Oggetto: [PHP] Query in un'istruzione if |
|
|
Salve a tutti, non sono nuova ma per diversi motivi non posso più recuperare nome e pass.
Volevo chiedervi un consiglio circa un piccolo progetto che sto affrontando.
Ho creato un form dove l'utente dovrà scegliere dal menu a tendina una voce.
Se sceglierà una voce dovrà aprirsi un altro menu a tendina, se ne sceglierà un altra dovrà aprirsi un altro menu ancora.
del tipo:
Sei uomo o donna? Se scegli uomo potrai scegliere degli interessi e s'inserirà nel database UOMO, se sei donna altri interessi e verrà inserito nel database DONNA
E' solo un esempio ovviamente^_^ è un pò più complesso il mio form.
Il problema è che non riesco ad inserire i dati
Sono ancora alle prime armi quindi...aiuto ç_ç |
|
Top |
|
|
freemind Supervisor sezione Programmazione
Registrato: 04/04/07 20:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 08 Ago 2010 19:13 Oggetto: |
|
|
Ciao, se ho capito bene tu hai una form con n tendine e solo la prima è all'inizio popolata. Se le identifichiamo con combo1,combo2,...,combon abbiamo che ogni combo (a parte la prima) ha i valori che dipendono da quello selezionato nella precedente.
Se è così, secondo me la soluzione più comoda/elegante è ajax.
Personalmente risolverei il problema nel modo che segue:
1) creo uno script che riceve in querystring un parametro che serve ad identificare una query. Seguendo il tuo esempio avremo
Codice: |
?q=uomo
o
?q=donna
|
In base al parametro verrà eseguita una query e i risultati (le options per la combo collegata) verranno proposti in xml oppure in json
2) all'evento onselect di ogni tendina viene chiamata una funzione javascript che riceve due bei parametri: a) l'identificativo della query da passare allo script descritto nel punto 1 e b) l'id della combo che verrà popolata in cascata.
Questa funziona dovrà prima di tutto distruggere tutti i valori presenti nella tendina collegata e poi eseguire la chiamata asincrona allo script precedente.
3) Una volta che la chiamata termina con successo tu avrai nel response xml o json i valori delle opzioni da caricare nella tendina collegata.
Una volta che tutte le tendine sono ok potrai fare il submit è sbattere i dati dove vuoi. |
|
Top |
|
|
ladycrys Comune mortale
Registrato: 08/08/10 16:54 Messaggi: 3
|
Inviato: 08 Ago 2010 20:09 Oggetto: |
|
|
Ciao e grazie per la risposta^^
Il problema è che di AJAX non capisco nulla, ho iniziato solo ora a programmare |
|
Top |
|
|
freemind Supervisor sezione Programmazione
Registrato: 04/04/07 20:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 09 Ago 2010 11:02 Oggetto: |
|
|
Ciao,
purtroppo ho poco tempo e non riesco a scriverti del codice di esempio.
Ti segnalo però qui un 3d in cui faccio vedere come si fanno le chiamate ajax extra-dominio.
Lasciando perdere il problema c'è il codice javascript per fare le chiamate asincrone.
Sicuramente può tornarti utili la creazione dell'oggetto XMLHttpRequest che è di fatto l'unico oggetto in gioco quando si parla di ajax.
Dovrai preparare la funzione javascript per popolare le combo e le 3 per fare le chiamate ajax.
Mi spiace ma per ora riesco a fornirti solo questo. |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11594 Residenza: Tokelau
|
Inviato: 09 Ago 2010 13:37 Oggetto: |
|
|
comunque non hai bisogno di AJAX per fare una cosa così semplice: prepari le tre select e le metti in 3 div diversi: il primo è visibile e gli altri 2 nascosti.
Poi a seconda di cosa selezioni dal primo select mostri il secondo oppure il terzo div.
Magari in un 4° div metti anche il pulsante di submit, oppure ne metti due uguali uno nel secondo e uno nel terzo div. |
|
Top |
|
|
ladycrys Comune mortale
Registrato: 08/08/10 16:54 Messaggi: 3
|
Inviato: 11 Ago 2010 20:31 Oggetto: |
|
|
SverX ha scritto: | comunque non hai bisogno di AJAX per fare una cosa così semplice: prepari le tre select e le metti in 3 div diversi: il primo è visibile e gli altri 2 nascosti.
Poi a seconda di cosa selezioni dal primo select mostri il secondo oppure il terzo div.
Magari in un 4° div metti anche il pulsante di submit, oppure ne metti due uguali uno nel secondo e uno nel terzo div. |
Perdonate il ritardo con cui scrivo ma avevo perso di nuovo i dati U_U non ho parole..
Comunque..scusa la nabbaggine ma..cosa intendi dire con "nascosti!"?
In attesa di un'eventuale risposta mi leggo anche il topic consigliatomi |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11594 Residenza: Tokelau
|
Inviato: 12 Ago 2010 15:01 Oggetto: |
|
|
i div hanno un attributo display, può essere settato a none e quindi non mostrati. E cercando su Google ho appena scoperto che esiste anche l'attributo visibility che può essere hidden o visible... |
|
Top |
|
|
|