Problème avec submit d'un form vers une page PHP
Bonjour
J'essaie d'utiliser un code PHP + Javascript pour changer la locale de mon site web.
Je veux qu'un clic sur un lien 'FR' 'EN' 'ES' change la locale, tout en conservant la page courante.
J'ai pensé à faire un formulaire avec un input hidden, et de soumettre ce formulaire en javascript; mais au final les données ne sont jamais reçues par php.
J'ai çà dans mon code
index.php
Code:
<?php include 'include/header.php';?>
header.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <?php
session_start();
include_once 'include/Constants.php';
include_once 'include/locale.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
function setLocale(newLocale){
document.formLocale.language.value = newLocale;
document.formLocale.submit();
};
</script>
</head>
<body>
<div class="header">
<!-- language -->
<div class="lang">
<form action="#" name="formLocale" method="post">
<input type="hidden" id="language"></input>
</form>
<!-- <a href="" onclick="javascript:setLocale('fr')">FR</a>
<a href="" onclick="javascript:setLocale('en')">EN</a>
<a href="" onclick="javascript:setLocale('es')">ES</a> -->
<?php foreach ($AVAILABLE_LANGUAGES as $languageKey => $languageValue) { ?>
<a href="" onclick="javascript:setLocale('<?=$languageKey?>')"><?=$languageValue?> POST</a>
<?php }?>
</div> |
Dans Constants.php j'ai çà:
Code:
1 2 3 4 5 6 7
| <?php
$AVAILABLE_LANGUAGES = array(
'fr' => 'FR',
'en' => 'EN',
'es' => 'ES' );
?> |
et dans locale.php j'ai çà:
Code:
1 2 3 4 5 6
| <?php
print_r('</br>post: ');
print_r($_POST);
?> |
Comme vous le voyez, dans header.php, il y a un form avec un input hidden, et l'action de ce form est # (pour aller vers la même page)
Comme toutes les pages passent par header.php, j'ai supposé qu'au reload il repasse par locale.php et donc dans $_POST je devrais trouver ma valeur language. Mais je ne la trouve pas, rien ne semble passé en POST.
Voyez-vous un souci?
Merci d'avance.
Nicolas.