Newsgroup: it.comp.www.php
Titolo: Combo che ricaricano la pagina e campi già compilati

Ciao a tutti,
devo realizzare una serie di pagine contenenti un form composto da
diverse caselle di testo da riempire, più alcune combo, che alla
selezione di un valore ricaricano la pagina per popolare le combo
dipendenti (per intenderci, qualcosa tipo: regione, provincia, comune,
cap. Selezionando la regione si popola la provincia e così via...).
Il valore della combo selezionata la passo nell'url, riempiendo
l'array $_GET.
Il problema è che se alcuni campi di testo sono già stati riempiti,
all'aggiornamento della pagina successivo alla selezione di una combo
questi valori scompaiono. Per ovviare a questo ad ogni ricarica passo
nel get anche tutti i valori di tutti i campi di testo, ma a parte che
l'url diventa vergognosamente lungo, il codice diviene sporco e poco
lavorabile. Volevo sapere se la soluzione da me adottata è l'unica,
oppure esistono implementazioni più eleganti e efficienti.
Ciao
Davide

davide...@gmail.com
 ha scritto:

se hai progettato opportunamente il database, puoi risalire dagli 
elementi secondari a quelli principali tramite codice PHP, ad esempio 
dato il comune (Roma) puoi risalire alla provincia o alla regione.
-- 
Ing. Francesco Mazzi
Staff di E-Xoopport - 
http://www.e-xoopport.it
Webmaster AltroPC.it
Direttore Sistemi I.C.T. - ocSinet s.r.l. - 
http://www.ocsinet.com

davide...@gmail.com
 ha scritto:
 > Ciao a tutti,
 >
 > devo realizzare una serie di pagine contenenti un form composto da
 > diverse caselle di testo da riempire, più alcune combo, che alla
 > selezione di un valore ricaricano la pagina per popolare le combo
 > dipendenti (per intenderci, qualcosa tipo: regione, provincia, comune,
 > cap. Selezionando la regione si popola la provincia e così via...).
 > Il valore della combo selezionata la passo nell'url, riempiendo
 > l'array $_GET.
 > Il problema è che se alcuni campi di testo sono già stati riempiti,
 > all'aggiornamento della pagina successivo alla selezione di una combo
 > questi valori scompaiono.
non puoi usare il submit e verificare  di volta in volta se è quello 
definitivo o se è un aggiornamento di pagina?
  Per ovviare a questo ad ogni ricarica passo
 > nel get anche tutti i valori di tutti i campi di testo, ma a parte che
 > l'url diventa vergognosamente lungo, il codice diviene sporco e poco
 > lavorabile. Volevo sapere se la soluzione da me adottata è l'unica,
 > oppure esistono implementazioni più eleganti e efficienti.
forse una tabella temporanea

 oppure esistono implementazioni più eleganti e efficienti.
Potresti fare un submit del form, specificando nel GET che si tratta di un 
submit parziale, e passando tutti gli altri dati normalmente via POST.
Lato server lo tratti come una modifica di dati gia` inseriti e riempi 
solo quelli che mancano in base al GET che gli hai passato.
In questo modo eviti di allungare il GET (che ha un limite di lunghezza, 
tra l'altro).
L'alternativa e` usare AJAX per richiedere i dati al volo senza ricaricare 
la pagina.
La via di mezzo e` di precaricare nella pagina tutte le regioni, citta` e 
province, e tramite javascript visualizzare solo quelle relative alla 
scelta precedente. La pagina diventa pesante da scaricare, ma la scarichi 
una volta sola e non devi ricaricarla ad ogni selezione.
Bye.

 dato il comune (Roma) puoi risalire alla provincia o alla regione.
Purtroppo non ho progettato io il db, devo realizzare la web-
application su db esistente.
Non mi sarebbe stato comunque di grosso aiuto, perchè molti campi non
sono collegati tra loro in modo da farmi risalire agli altri dal php.
Inoltre...come la mettiamo con i campi di testo appena inseriti e non
ancora registrati su db?

 forse una tabella temporanea
Cioè una tabella in cui ogni volta che chiedo di ricaricare la pagina
vengono salvati i dati e dove vado a leggere ogni volta?

 l'array $_GET.
Usa il POST, così la barra dell'indirizzo rimane intatta.
Ciao,
   Fabrizio

 Cioè?
il tuo problema mi pare sia conservare i campi già compilati 
dall'utente. Dunque  ogni volta che ricarichi  la pagina lo fai 
innescando il submit (con js). Usi un campo nascosto per marcare il tipo 
di submit (temp o definitivo) sempre con js.
Quindi ogni volta che fai il submit se è temp recuperi i valori 
dall'arrray  $_POST e ricompili i campi del form. Se è un submit 
definitivo  procedi a salvare sul db
Perlomeno a mia insaputa..