reload van pagina met extra waarde in url

Status
Niet open voor verdere reacties.

djemmers

Gebruiker
Lid geworden
7 jul 2006
Berichten
129
Hallo,

heb een website gebaseerd op php en een sql database.
Nu wil ik dat als de mensen op een vlag van een land klikken dezelfde pagina opent met een paar veranderingen.

alles werkt maar een ding krijg ik maar niet in orde:
ik geef de landcode mee in de url:
bv: index.php?nav=home&land=BE
wat moet ik nu bij href="" invullen om achter de huidige url &land=BE te plakken?
voorbeelden:

index.php wordt index.php?land=BE
index.php?nav=home wordt index.php?nav=home&land=BE
enz...

Is er een code voor de huidige url?
En hoe los ik het probleem op met de ene keer & toevoegen en andere keer ?

groeten
en alvast bedankt
 
Er is een code voor de huidige url.

Je kan linken naar de huidige pagina met argumenten door enkel ?..., de argumenten dus, als link op te geven.

Hierbij moet je volgens mij wel altijd alle argumenten meegeven.

Een mogelijkheid om het op te lossen gaat zo.

PHP:
<?php
$arg="?";
$url=explode("?",$_SERVER['REQUEST_URI']);
$al=count($url)-1;
if ($al!=0){
  $arg="?".$url[$al]."&";
}
$arg=$arg."land=BE";
?>

<a href="<?php echo $arg; ?>">klik</a>

In plaats van "land=BE" kan je een ander land meegeven. Waarnaar je moet linken komt dus in de php-variabele $arg te staan.
 
bedankt, ga het metteen proberen...

en het werkt perfect!
Heel hard bedankt!!!
 
Laatst bewerkt:
edit: misschien zelf eerst wat proberen, als het niet lukt horen jullie me wel

ok, werkt blijkbaar toch niet perfect:
ik heb:
PHP:
$arg="?";
$url=explode("?",$_SERVER['REQUEST_URI']);
$al=count($url)-1;
if ($al!=0){
  $arg="?".$url[$al]."&amp;";
}

en
HTML:
href="<?print $arg;?>l=BE"
href="<?print $arg;?>l=NL"

staan, alles werkt goed behalve als je na elkaar op de vlaggen klikt, dan krijg je achteraan in de link staan l=BE&l=NL&l=NL enz...
is er een manier om te checken of er al "l=" voorkomt en zoja die te vervangen zoniet doen wat ik nu al doe?
 
Laatst bewerkt:
Had ik al gezien bij je vraag bij sitecheck:)

Je zal moeten checken of al ?l= of &l= voorkomt en eventueel dan de variabele vervangen.

Alleen hoe je moet vervangen in een string ga ik eens moeten opzoeken. Laat ik weten als ik het heb.
 
was eigenlijk niet zo moeilijk:
hier mijn (misschien niet zo elegante oplossing:
vervang het de code door:
PHP:
$arg="?";
$test="";
$url=explode("?",$_SERVER['REQUEST_URI']);
$al=count($url)-1;
if ($al!=0){
  $test=explode("l=",$url[$al]);
  if ($test[1]!=""){
	$arg="?".$test[0];
  }
  else {
	$arg="?".$url[$al]."&amp;";
  }
}
 
Als je er zelf aan uitgeraakt is het goed.

Ik ging het algemener doen (nu kan je bijvoorbeeld ook een variabele hebben die op l eindigt of zo). Deze zou heel algemeen moeten werken (is wel niet getest), bijvoorbeeld ook als het land gewoon ergens middenin tussen de variabelen al staat.

PHP:
<?php 
$arg="?"; 
$url=explode("?",$_SERVER['REQUEST_URI']); 
$al=count($url)-1; 
if ($al!=0){ 
  $arg="?".$url[$al]."&"; 
}
$ver=strpos($arg,'?l=');
if ($ver===false){
  $ver=strpos($arg,'&l=');
}
if ($ver!==false){
  $ver2=strpos($arg,'&',$ver+1);
  if ($ver2===false){
    $ver2=strlen($arg)-1;
  }
  $arg=substr_replace($arg,'',$ver+1,$ver2-$ver);
}
?>

Maar nu eens checken of het werkt.

edit: lijkt in orde
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan