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.'); } }); }); } }
A voir également:
- Problème avec appel $.ajax POST vers PHP
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appel privé - Guide
- Brouillon post instagram - Guide
- Prix d'un appel local - Forum telephonie fixe
- Double appel - Guide
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...
$_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...
pat
Merci Mimiste pour ta réponse, j'essayerai dès que possible.
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:
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()); } ?>