Passaggio di parametri

Ciao a tutti.

Ho una pagina con una tabella. Le intestazioni di colonna sono dei link che richiamano la pagina stessa per cambiarne l'ordinamento. Sopra la tabella c'è un form con dei campi filtro, anche lui richiama la pagina stessa per visualizzare la tabella filtrata.

Il mio problema è questo: il form usa post per passare i dati al controller, mentre i link passano il parametro di ordinamento tramite l'url: c'è un modo per passare tutti i parametri della videata attraverso lo stesso canale ?

inviato 7 anni fa
dacdam
X 0 X

Non è necessario che i vari elementi della pagina utilizzino lo stesso canale per inviare parametri al Controller, infatti tutti i parametri sono accessibili attraverso l'oggetto Request (che nel Controller si recuperà con $this->getRequest()) attraverso la lettura di attributi pubblici "magici", es.:

$valore_parametro = $this->getRequest()->nome_parametro;

dove nome_parametro è il nome di un parametro proveniente in ordine da $_GET, da $_POST, da $_COOKIE, da $_SERVER o da $_ENV.

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Conosco l'oggetto Request, però c'è un problema: quando vengono cliccate le intestazioni di colonna i valori del POST non sono valorizzati.

Il risultato che ottengo è che, quando clicco su una intestazione di colonna, perdo il filtro corrente...

Io ho risolto così: nel controller, quando la richiesta arriva tramite POST, creo una variabile "URIFiltro" che nella view viene incorporata nei link delle intestazioni di colonna. In questa maniera, quando viene cambiato l'ordinamento, il filtro corrente viaggia attraverso l'url di richiesta e viene mantenuto.

Però mi sembra una soluzione troppo macchinosa.... volevo trovare qualcosa di meglio.

Ciao!

risposto 7 anni fa
dacdam
X 0 X

ok, adesso mi è chiaro il tuo dilemma e la soluzione che hai applicato è forse quella più corretta

un'alternativa potrebbe essere quella di salvare i criteri di ricerca in sessione

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Mi piacerebbe tanto usare le sessioni, ma c'è un problema: come faccio a salvare i dati in quando sono in uscita dal form ?

Con Zend si ha il controllo dei dati (tramite il controller) solo quando si è in ingresso in una pagina... o sbaglio ?

Ciao.

risposto 7 anni fa
dacdam
X 0 X

 ??? non ho ben capito cosa intendi per "in uscita dal form" e "in ingresso in una pagina"

Comunque, immagino che da qualche parte del codice prelevi i dati inseriti dall'utente nel form e li usi per effettuare la ricerca nel database. In quello stesso momento potresti memorizzarli in sessione, in modo da riusarli qualora via URL ricevi dei parametri di ordinamento dei risultati

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Hai ragione, non ci avevo pensato. E' anche ovvio ma, essendo alle prime armi...

Grazie Gianni, mi sei stato veramente utile.

 :bye:

risposto 7 anni fa
dacdam
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda