20 Jun
PHP: Mantenere parametri GET nelle url
Posted in PHP, Programmazione ecc.., Web developing, sprite by adminPHP. Capita spesso di voler richiamare una pagina (che è stata già chiamata con dei parametri).
Per non dover ogni volta riscrivere la url da zero, si possono sovrascrivere (o aggiungere se non ci sono già) i parametri in GET con la funzioncina ,codice a fondo post. Esempio : in una pagina di navigazione recordset stiamo visualizzando la pagina X di Y (quindi in GET ci saranno già dei parametri che vogliamo mantenere ), e serve un link alla pagina che però cambi l’ordinamento:
Cioè se la pagina corrente era
pagina.php?order=id&page=4&table=tabella
il link dovrebbe essere
pagina.php?order=nome&page=4&table=tabella
Usiamo la funzione e scriviamo
<a href="pagina.php<?=makeUrl( array("order"=>"nome") )?>">ordina tabella per nome</a>
fregandocene dei parametri correnti che verranno mantenuti
Qualcuno ha avuto qualche altra idea per risolvere il problema ? commentate !
//rileggo i parametri GET e li sovrascrivo con quelli passati, restituendo la URL
function makeUrl($overGet)
{
$get = $GLOBALS['_GET'];
// overWrite GET
foreach($overGet as $k => $v)
{
$get[$k] = $v;
}
// make Url
$ga = array();
foreach($get as $k => $v)
{
$ga[] = urlencode($k)."=".urlencode($v);
}
//
return implode("&", $ga);
}



Giovanni
on June 20 2008
Ciao Elvis! Mi ricordo di aver avuto anche io questa esigenza, ed ho scoperto questa funzione:
http://it2.php.net/manual/it/function.http-build-url.php
admin
on June 21 2008
immaginavo ci fosse qualcosa di già pronto…
le cose semplici cmq preferisco sempre farle io per averle sotto controllo.
grazie della dritta, pecl in effetti non lo guardo mai.
ciao Giovanni !
Demo
on June 22 2008
Io malato del php =)))). Mi sono messo a fare diversi esperimenti e sono arrivato ad una simpatica conclusione =))). Ho creato due funzioni perchè volevo eliminare le parentesi graffe. Ho anche abusato dell’operatore ternario per avere meno codice possibile. Pessima programmazione ma io adoro, come sai, rendermi la vita difficile con codici come questi =).
$v)
$qs .= ++$i-count($_GET) ? “$k=”.sel_v ($a,$k,$v,$b).”&” : “$k=”.sel_v ($a,$k,$v,$b).”";
return $qs;
}
echo re_qs(”sandro”, “patacchio”);
?>
Demo
on June 22 2008
Non ha scritto correttamente il codice:
function sel_v ($a,$k,$v,$b)
{
return $a != $k ? $v : $b;
}
function re_qs($a, $b)
{
foreach($_GET as $k => $v)
$qs .= ++$i-count($_GET) ? “$k=”.sel_v ($a,$k,$v,$b).”&” : “$k=”.sel_v ($a,$k,$v,$b).”";
return $qs;
}
echo re_qs(”sandro”, “patacchio”);
Demo Web Log
on June 23 2008
Riscrivere QueryString automaticamente…
Questo post non è troppo originale, la verità è che volevo sperimentare l’uso dei TrackBack.
Nel post originale si poneva il problema di riscrivere intere querystring senza dover fare troppa fatica e dovendone sostituire qualche valore. La mia……
Casino 1274727435
on May 24 2010
Casino 1274727435…
Casino 1274727435…
Casino 1277305669
on June 23 2010
Casino 1277305669…
Casino 1277305669…