- Home
- Categorie
- Coding e Sistemistica
- PHP
- Zend framework. Passaggio parametri.
-
Zend framework. Passaggio parametri.
Ciao a tutti.
C'è qualcuno che usa Zend framework e può darmi una mano ?
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 ?
-
Puoi utilizzare dei campi input html di tipo hidden compilati con i valori che vuoi passare tramite post.
-
Ok, però così risolvo solo il problema del POST parziale.
Mi resta il problema che, quando clicco sulle intestazioni di colonna per ordinare la lista, i campi filtro non viaggiano tramite GET...Io ho risolto mettendo nel controller un pezzo di codice che, quando la richiesta arriva tramite POST, crea una variabile "URIFiltro" da passare alla view. Nella view poi i link delle intestazioni di colonna vengono costruiti includendo "URIFiltro", così alla loro pressione il filtro attivo viene mantenuto.
Questa soluzione però mi sembra troppo macchinosa...
-
Quindi vorresti che tutti i valori vengano passati come GET e non come POST.
Potresti cabiare il form in get avendo così:[php]
$filtro_1 = $_GET["filtro_1"];
$filtro_2 = $_GET["filtro_2"];
$filtri = "filtro_1=$filtro_1&filtro_2=$filtro_2";
[/php]Poi cambi i link nella tabella in questo modo:
[php]
$ordinamento_1 = $_GET["ordinamento_1"];
$ordinamento_2 = $_GET["ordinamento_2"];
$ordinamenti = "ordinamento_1=$ordinamento_1&ordinamento_2=$ordinamento_2";$link = "pagina.php?$filtri&$ordinamenti";
[/php]In questo modo ti porti dietro tutte le informazioni.
-
Mi sa che non posso usare il GET sui form.
Siccome sto sviluppando usando lo Zend Framework, gli indirizzi delle pagine devono essere fatti secondo le regole dello Zend...
Se uso il GET sui form i parametri mi escono nella forma ?Ord="1" e lo Zend non riesce a gestirli..
-
Ne sei sicuro? in caso utilizza POST e metti questa modifica.
[php]
$filtro_1 = (isset(@$_POST["filtro_1"])) ? @$_POST["filtro_1"] : @$_GET["filtro_1"];
$filtro_2 = (isset(@$_POST["filtro_2"])) ? @$_POST["filtro_2"] : @$_GET["filtro_2"];
$filtri = "filtro_1=$filtro_1&filtro_2=$filtro_2";
[/php]