změna proměnné v url

15 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Ahoj, v url předávám proměnnou s údajem o jazykové verzi, která se má zobrazit. Nějak mě nenapadá, jak změnit údaj v proměnné a přitom zachovat celý zbytek adresy, i s ostatními proměnnými. Zkouším si hrát s $_SERVER['REQUEST_URI'], ale to se nezdá být správná volba. Díky za každou radu.
  2. proměnné v adrese se mění kliknutím na odkaz... nechápu, k čemu by ti byla změna textu v adresním řádku... $obsah_promenne = $_GET['promenna'];
  3. ja to resim tak, ze vezmu $_GET zmenim, co potrebuju $_GET['language'] = jiny; a pak zrekonstruuju url... mam na to fci, ktere predam url a parametr s hodnotou,kterou tam chci dat a ona mi ji prida/zmeni a vrati nove url.
  4. Jistě. Jde o to, že když mám na začátku třeba index.php?menu=biologie&language=cze tak bych po kliknutí na odkaz chtěl mít index.php?menu=biologie&language=eng aby potom $obsah_promenne = $_GET['language']; mela správnou hodnotu... Když nastavím odkaz rovnou na index.php?language=eng , tak se uživatel při překliknutí jazykové verze dostane zpět na začátek a bude se muset proklikávat tam kde byl předtím. Proto bych chtěl zachovat ty proměnné, ale nevím jak to udělat. Momentálně ten odkaz vypadá a href="<?PHP echo $_SERVER['PHP_SELF'].$language; ?>", což ale právě nezachovává ty ostatní proměnné.
  5. Marku, nemohl bych poprosit o nějakou ukázku té funkce?
  6. dyt o tom mluvim, pisu: $adr= $_SERVER['PHP_SELF']; $params = $_GET; $params['language'] = 'eng'; # nebo jiny $nove_parametry= join_url_params($params); # funkce posklada klic=>hodnota do retezce klic=hodnota&klic2=hodnota2 $nove_url = $adr."?".$nove_parametry; # pouzit nove url
  7. díky, já si s tím budu hrát. Nejdřív jsem naivně hledal to join_url_params v manuálu... není mi moc jasné, jak složit zase dohromady tu novou adresu.
  8. Tohle by mohlo jít, ne? join_url_params($params) { foreach ($params as $klic => $hodnota) { $parametry .= '&' . $klic . '=' . $hodnota; } return substr($parametry, 1); }
  9. hmm, zajimave obchazeni problemu... CoolURi na vás, pánové :-)
  10. díky, nejspíš mohlo, ale http_build_query () http://mirrors.inway.cz/manual/cs/function.http-build-query.php je nakonec jednodušší. Funguje mi to celé krásně takhle, kdyby to někdy někdo potřeboval (PHP 5 only): $adr= $_SERVER['PHP_SELF']; $params = $_GET; if ($_GET['language']== 'eng') $jazyk = 'cze'; else $jazyk = 'eng'; $params['language'] = $jazyk; $nove_url = $adr."?".http_build_query($params);
  11. problem je, ze http_build_query() funguje az od php5, takze tady asi ne-e.
  12. <?php function Http_Build_Query_4($array, $validate = false) { if ($validate) {$amp = "&";} else {$amp = "&";} foreach ($array as $key => $val) { if (Is_Array($array[$key])) { foreach ($array[$key] as $akey => $aval) { $get_string .= $key."[".$akey."]=".URLEncode(StripSlashes($aval)).$amp; } } else { $get_string .= $key."=".URLEncode(StripSlashes($val)).$amp; } } $get_string = Ereg_Replace("^$amp*", "", $get_string); $get_string = Ereg_Replace("$amp*$", "", $get_string); return $get_string; } ?>
  13. pro ty kdo neví, tak se tu zase převedlo && na &, takže ten if nazačátku vypadá divně.
  14. grrr. &amp na &
  15. No jéje. Ten IF se fakt nepovedl :o)

← Zpět na všechna témata