Problème avec appel $.ajax POST vers PHP

Fermé
pat - 10 févr. 2012 à 08:39
 pat - 12 févr. 2012 à 11:22
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 ? :-)


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:

2 réponses

Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
10 févr. 2012 à 09:29
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...
1
Merci Mimiste pour ta réponse, j'essayerai dès que possible.
0
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());
}
?> 
0