par
Saian » 18 janv. 2023, 16:16
Tu ne peux pas te baser sur les cookies pour modifier les valeurs de location lat et lng qui sont déjà en dur dans la page dans l'attribut action de la balise form.
Quand tu appelles plan.php les valeurs dans $_COOKIE sont celles résultantes de la précédente exécution du script plan.js, la nouvelle exécution n'ayant pas encore eu lieu.
Le
echo "<form class='form-container' method='post' id='form' action='save-meets.php?location=".$location."&lat=".$lat."&lng=".$lng."'>";?>
est transmis au navigateur sous cette forme (en admettant que les cookies soient vides au départ)
<form class='form-container' method='post' id='form' action='save-meets.php?location=&lat=&lng='>
Lorsque tu soumets le formulaire ce sont donc ces valeurs qui sont transmises.
Au lieu de mettre ces paramètres en get dans l'action du formulaire, fait des input hidden dans ton form et mets à jour les valeurs de ces inputs avec javascript quand tu obtiens le résultat d'OpenStreetMap.
Un truc du genre
document.getElementById('lat').value = marker.latlng.lat;
avec un input
<input type="hidden" id="lat" name="lat" value=""/>
Ainsi dans $_POST['lat'] tu devrais obtenir la latitude du dernier appel OpenStreeMap.
Tu ne peux pas te baser sur les cookies pour modifier les valeurs de location lat et lng qui sont déjà en dur dans la page dans l'attribut action de la balise form.
Quand tu appelles plan.php les valeurs dans $_COOKIE sont celles résultantes de la précédente exécution du script plan.js, la nouvelle exécution n'ayant pas encore eu lieu.
Le
[PHP]echo "<form class='form-container' method='post' id='form' action='save-meets.php?location=".$location."&lat=".$lat."&lng=".$lng."'>";?>
[/PHP]est transmis au navigateur sous cette forme (en admettant que les cookies soient vides au départ)
[PHP]<form class='form-container' method='post' id='form' action='save-meets.php?location=&lat=&lng='>
[/PHP]Lorsque tu soumets le formulaire ce sont donc ces valeurs qui sont transmises.
Au lieu de mettre ces paramètres en get dans l'action du formulaire, fait des input hidden dans ton form et mets à jour les valeurs de ces inputs avec javascript quand tu obtiens le résultat d'OpenStreetMap.
Un truc du genre
[PHP]document.getElementById('lat').value = marker.latlng.lat;
[/PHP]avec un input
[PHP]<input type="hidden" id="lat" name="lat" value=""/>[/PHP]
Ainsi dans $_POST['lat'] tu devrais obtenir la latitude du dernier appel OpenStreeMap.