2010-11-19 21 views
1

jp.php?q=dog ou jp.php?h=123&f=14 etc. Existe-t-il un meilleur moyen de resoumettre les arguments (autre que de boucler par q, h, f, ...) et par exemple ajouter ' & action = mise à jour '? Ceci est une version en boucle tentative:

$req_str=""; 
foreach($_REQUEST as $req_k => $req_v){ 
$req_str.=$req_k."=".$req_v."&"; 
} 
echo "<a href=jp.php?".$req_str."&action=update >UPDATE</a>"; 

MISE À JOUR

Je pense que $_SERVER['QUERY_STRING'] est ce que je cherchais. Vous ne savez pas si cela fonctionnerait si les variables étaient soumises via 'POST' plutôt que 'GET'?

Répondre

3
$query = http_build_query(array_merge($_GET, array('action' => 'update'))); 
printf('<a href="jp.php?%s">Update</a>', $query); 
+0

Voir ci-dessus: $ _SERVER [ 'QUERY_STRING'] – ajo

+0

@ajo Voir ci-dessus: 'http_build_query'. De cette façon, vous pouvez être sûr que les paramètres ne sont là qu'une fois. Que faire s'il existe déjà un paramètre 'action' dans' $ _SERVER ['QUERY_STRING'] '? – deceze

+0

S'il y avait déjà '& action = ...', prendrait-il la première ou la deuxième valeur si, par exemple, 'jp.php? Action = stop & q = 1 & action = go'? – ajo