Problème avec appel $.ajax POST vers PHP
pat
-
pat -
pat -
Bonjour,
Je souhaite faire transiter une variable "latitude" d'une page html vers une page PHP. Ma page PHP contient simplement un echo $_POST et je ne comprend pas pourquoi $_POST contient "Array" lorsque j'exécute mon appel AJAX (c'est le popup qui s'affiche avec le alert (msg), alors que j'aimerais récupérer ma variable latitude qui vaut 48.7557558). Des idées ? :-)
Je souhaite faire transiter une variable "latitude" d'une page html vers une page PHP. Ma page PHP contient simplement un echo $_POST et je ne comprend pas pourquoi $_POST contient "Array" lorsque j'exécute mon appel AJAX (c'est le popup qui s'affiche avec le alert (msg), alors que j'aimerais récupérer ma variable latitude qui vaut 48.7557558). Des idées ? :-)
function getCoordPosition(){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position){
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var altitude = position.coords.altitude;
document.getElementById('geolocation').innerHTML = 'latitude : ' + latitude + '<br />' + 'longitude : ' + longitude + '<br />' + 'altitude : ' + altitude + '<br />';
$.ajaxSetup({
url: "insert-in-bdd.php",
type: "POST",
});
$.ajax({
data: 'latitude='+latitude+'&longitude='+longitude,
success: function (msg) {
alert (msg);},
error: function (XMLHttpRequest, textStatus, errorThrown)
{
alert('Error submitting request.');
}
});
});
}
}
2 réponses
-
bonjour
$_POST est un tableau qui contient l'ensemble des valeurs passé en post. Même si php n'est pas un langage totalement typé, faire un echo de $_POST affichera array c'est tout a fait normal.
Pour récuperer une valeur faut lui passer un index, genre $_POST['latitude'] ou bien $_POST[0] etc... -
Bonjour,
J'ai modifié ma requête pour récupérer les index latitude et longitude et je n'obtiens pas d'erreur. Toutefois, ma table mySQL reste vide => lng = 0.000000 :-(
Même résultat si je fais un UPDATE avec $req = $bdd->prepare('UPDATE location SET lat = :lat');.
Voici le code PHP:
<?php header('Content-type: text/html; charset=ISO-8859-1'); try { if(isset($_POST['latitude']) && isset($_POST['longitude'])){ $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=madb', 'root', ''); $req = $bdd->prepare('INSERT INTO location(lat) VALUES(:lat)'); $req->execute(array( 'lat' => $_POST['latitude'], 'lng' => $_POST['longitude'], )); }} catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } ?>