Archief - Wijzig taal onChange

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

meuh

Legacy Member
Voor een meertalige website moet ik van op eendert welke pagina de taal kunnen wijzigen en dan op dezelfde pagina in de andere taal terechtkomen.

Mijn dropdownbox:
HTML:
<select name="language">
            <option value="EN">English</option>
            <option value="FR">Française</option>
            <option value="NL">Nederlands</option>
        </select>

Dus wanneer ik een taalkeuze selecteer, zou ik graag naar een php pagina willen waar ik de URL van de vorige pagina en de language value heb.

Iemand enige idee ?

Thanks !

YaMo

Legacy Member
De language value geef je mee via je formulier en de pagina waar je vandaag komt kan je uit de referer header halen.
Via de location header kan je de gebruiker dan weer redirecten naar die vorige pagina.

meuh

Legacy Member
Iets te snel geweest met mijn vraag te stellen...
Ik denk dat ik een oplossing heb.

Eerst de huidige url in een sessie plaatsen
PHP:
<?php
function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}

$_SESSION['current_url'] = $pageURL;

?>

en dan de value van de dropdownbox met POST in een variable plaatsen en deze variable mee in de url van de redirect php pagina plaatsen.

Maar het is me nog niet duidelijk hoe ik naar een pagina ga, via onchange.

YaMo

Legacy Member
Allé dan:
HTML:
<form action="lang.php" method="post">
    <select name="language" onchange="this.form.submit()">
         <option value="EN">English</option>
         <option value="FR">Française</option>
         <option value="NL">Nederlands</option>
    </select>
</form>

PHP:
<?php
if(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']){
    $referer = $_SERVER['HTTP_REFERER'];
} else{
    $referer = "/";
}
$lang = $_POST['language'];

//verander de taal, in de sessie of met een cookie ofzo...

header("Location: " . $referer);

Iets in die aard.

YaMo

Legacy Member
meuh zei:
Thanks YaMo !
Dit werkt perfect.

Daar moeten mss ook nog wel wat aanpassingen aan gebeuren voor perfect veilig en errorloos te werken, hoor.

meuh

Legacy Member
YaMo zei:
Daar moeten mss ook nog wel wat aanpassingen aan gebeuren voor perfect veilig en errorloos te werken, hoor.

Mits een kleine wijziging werkt uw code perfect voor mijn project.

Thanks!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan