Bonjour à tous, j'ai un souci avec mon code : la mise à jour de ma variable de session ne se fait pas correctement du côté PHP. Les console.log du script JavaScript donnent les bonnes valeurs, mais le var_dump du côté HTML/PHP ne renvoie pas la bonne idContinent contenue dans le script JavaScript.
<form id="submitSiegeSocial" action="php/scripts/actionChoisirSiegeSocial.php" method="POST">
<label for="continent">Choisir un continent :</label>
<select id="continent" name="continent">
<option value="0">Choisir un continent</option>
<?php foreach ($allContinents as $allContinents): ?>
<option value="<?= $allContinents->id() ?>">
<?= $allContinents->nom() ?> - superficie cultivable :
<?= $allContinents->supCultivableKmC() - ($terresJoueursManager->sommeHecRestentContinent($allContinents->id()) * 0.01) ?> km² / <?= $allContinents->supCultivableKmC() ?> km²
</option>
<?php endforeach; ?>
</select>
<!-- Suite formulaire en fonction du continent choisie -->
<div id="suiteFormChoixPays" class="hidden">
<?php $choixIdContinent = (int)$_COOKIE['choixIdContinent'];
var_dump($choixIdContinent);
?>
<label for="pays">Choisir un pays :</label>
<select id="pays" name="pays">
<option value="0">Choisir un pays</option>
<?php foreach ($allPays as $allPays):
if($allPays->idContinent() == $choixIdContinent) { ?>
<option value="<?= $allPays->id() ?>">
<?= $allPays->nom() ?> - superficie cultivable :
<?= $allPays->supCultivableKmC() - ($terresJoueursManager->sommeHecRestentContinent($allPays->id()) * 0.01) ?> km² / <?= $allPays->supCultivableKmC() ?> km²
</option>
<?php }
endforeach; ?>
</select>
</div>
</form>
voici le code js qui est appeler dans mon fichier php.
PHP est exécuté côté serveur donc avant Javascript qui l'est côté client.
De plus, passant par un cookie, le serveur ne verra tout changement qu'à la prochaine requête HTTP.
Si tu veux une communication client => serveur il te faut de l'ajax ou des websockets. Ton code PHP aura toujours un temps de retard : il ne montrera que la valeur sélectionnée "précédemment" (= il faut forcer le rafraîchissement de la page par F5/Ctrl + R ou revenir sur la page), bref, j'imagine que ce n'était pas l'idée/que l'approche ne convient pas.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli