IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Passage de variables d'une api vers un formulaire


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut Passage de variables d'une api vers un formulaire
    Bonjour à toutes et à tous


    Je souhaiterais récupérer dans le script de mon api google les cordonnées lat et long pour que celles-ci apparaissent directement dans le Champs de mon formulaire en php qui se trouve sur la même page.Vous vous douter que si je demande cela c'est que je 'narrive pas a passer ces fameuses lat et long en variable interprétable par php

    voici la partie du script de l 'api

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.getElementById("lat").innerHTML = position.coords.latitude;
    document.getElementById("long").innerHTML = position.coords.longitude;



    et voici le script du forumulaire php




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
     
     
     
     
    $menu=isset($_POST['menu'])?$_POST['menu']:""; 
    $latitude=isset($_POST['latitude'])?$_POST['latitude']:""; 
    $longitude=isset($_POST['longitude'])?$_POST['longitude']:""; 
     
    // Action à effectuer: 
    if ($menu<>""){ 
    // Enregistre dans le fichier fichier.txt: 
    $msg= x.$latitude. r .$longitude." ".""; 
    $handle = fopen("fichier.txt", "w"); 
    fputs ($handle, $msg.chr(13).chr(10)); 
    aff_fin(); 
    }else{ 
    aff_formulaire(); 
    } 
     
     
    function aff_formulaire(){ 
    echo '<form name="form1" method="POST">'; 
    echo 'Latitude.....: <input type=text name="latitude"> ex :47.7255624<br>Longitude: <input type=text name="longitude">ex : 1.7573520<br><input type=hidden name="menu"><input type=submit value="Envoyer" onclick="document.form1.menu.value=\'Envoyer\';"></form>'; 
    } 
     
    function aff_fin(){ 
     
    //echo "Coordonées modifiées    ";
    echo "<A href='mob.php' target='http://www.monsite.fr/'>[ RETOUR AU SITE ] <A>";
     
     
    } 
     
     
    fclose($fp);
     
     
     
    ?>

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    pour remplir les champs de ton formulaire, il faut utiliser value="tavalue" dans l'input.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
     
    $menu=isset($_POST['menu'])?$_POST['menu']:""; 
    $latitude=isset($_POST['latitude'])?$_POST['latitude']:""; 
    $longitude=isset($_POST['longitude'])?$_POST['longitude']:""; 
     
    // Action à effectuer: 
    if ($menu<>""){ 
    // Enregistre dans le fichier fichier.txt: 
    $msg= x.$latitude. r .$longitude." ".""; 
    $handle = fopen("fichier.txt", "w"); 
    fputs ($handle, $msg.chr(13).chr(10)); 
    aff_fin(); 
    }else{ 
    aff_formulaire($latitude,$longitude); 
    } 
     
     
    function aff_formulaire($latitude, $longitude){ 
    echo '<form name="form1" method="POST">'; 
    echo 'Latitude.....: <input type=text name="latitude" value="'.$latitude.'"> ex :47.7255624<br>Longitude: <input type=text name="longitude" value="'.$longitude.'">ex : 1.7573520<br><input type=hidden name="menu"><input type=submit value="Envoyer" onclick="document.form1.menu.value=\'Envoyer\';"></form>'; 
    }

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut formulaire
    Merci et bonjour gototog,

    J 'ai appliqué tes conseilles et pas de résulta les champs du formulaire restent vierge. Je t 'ai envoyé par MP le lien vers le formulaire pour que tu puisse voir le résulta.

    bien cordialement

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    dans ta zone de texte, Latitude : 45.666...
    Longitude : 5.55.....
    Précision : 126
    Altitude : 0
    Précision altitude : 0

    comment récupères tu les valeurs latitudes longitudes?

    A quoi sers le fichier texte d'ailleurs?

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Le fichier texte fichier.txt recup les lat et long . Les lat et long proviennent d'un script google de geolocalisation

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    as tu testé tes variables POST pour etre sur que tu récupères bien les données?

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Bon je cale voici une autre apparoche pour récupérer les lat et long


    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    ?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="refresh" content="3; URL=recup.php">
    <title>iPhone 3.0 geolocation demo</title>
    <meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" name="viewport"/>
    <script>
     
     
    navigator.geolocation.getCurrentPosition(handler);
     
     
    function handler(location) {
        var message = document.getElementById("message");
        message.innerHTML+="<p>Longitude: " + location.coords.longitude + "</p>";
        message.innerHTML+="<p>Latitude: " + location.coords.latitude + "</p>";
        message.innerHTML+="<p>Accuracy: " + location.coords.accuracy + "</p>";
     
        //Envoie des donnees
        $.post("recup.php", "long="+location.coords.longitude+"&lat="+location.coords.latitude+"&acc="+location.coords.accuracy);
    }
     
     
     
    </script>
    </head>
    <body>
    <div id="message">Location unknown</div>
    </body>
    </html>




    et la voici le code de recup


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
     
      if(isset($_POST['lat']) && isset($_POST['long']) && isset($_POST['acc']) ){
          extract($_POST); //cree les variables $lat, $long et $acc en lisant les index de $_POST
     
         $toWrite = $longitude.",".$latitude.",".$acc; //tu peux modifier celle-ci comme tu veux
     
     
     
    echo"$longitude";
     
     
     
     
     
         //il me reste aussi a ecrire le code qui vas ecrire dans le fichier txt
      }



    Bon voilou la je suis sec de chez sec

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $toWrite = $longitude.",".$latitude.",".$acc; //tu peux modifier celle-ci comme tu veux
    Mais elles sortent d'où ces variables $longitude et $latitude...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Ca sert a rien de changer tout ton code si tu ne sais pas d'ou vient l'erreur.
    on va chercher d'ou elle vient.


    alors, tu envoies en ajax ta requete.
    La syntaxe est mauvaise et cette requete dois avoir un callback( une fonction ou quelque chose qui utilise son retour) essaye:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $.post("recup.php?long="+location.coords.longitude+"&lat="+location.coords.latitude+"&acc="+location.coords.accuracy, function(data) {
      alert(data);// on va voir si tu recoit les données
    });
    ensuite dans ta récupération, tu dis que extract met tes valeurs dans des variables $lat mais tu utilise des variables $latitude. essaye comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    if(isset($_POST['lat']) && isset($_POST['long']) && isset($_POST['acc']) ){
      extract($_POST); //cree les variables $lat, $long et $acc en lisant les index de $_POST
     
      $toWrite = $long .",".$lat.",".$acc; //on s'occupera de ca après
     
      echo "longitude:".$long;
      //TODO ecriture dans le fichier
    }else{
      echo "Erreur";
    }
    ?>

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Ok je comprends c'est la que je suis pas bon je bug plus que mes lignes de code

    je modifir tout ca est je te fais un retour


    Merci

  11. #11
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    alors, j 'ai testé les codeS et j 'ai bien une erreur dans la recup des données


    ton script retourne erreur .... Voici donc une grande faiblesse de ma part


    JE NE TEST PAS SUFFISAMMENT MES SCRIPT

  12. #12
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    si tu ne recois pas les données, c'est peut etre qu'elles ne sont pas envoyés. tu peux essayer de rajouter des alertes dans ton script. par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    alert(location.coords.longitude);
    $.post("recup.php?long="+location.coords.longitude+"&lat="+location.coords.latitude+"&acc="+location.coords.accuracy, function(data) {
      alert(data);// on va voir si tu recoit les données
    });
    tu cherches d'ou provient ton erreur comme ceci. sachant qu'il y'a des debugeurs javascript si tu préfères une approche moins a la mano.

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Bonjour gotolog,


    Sur le script de récup je pense que tout est ok. C'est l 'autre qui n'envoi pas les données


    Voici le code de recup.php la a mon avis pas de problème ..... non?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <?php
     
    if(isset($_POST['latitude']) && isset($_POST['longitude']) && isset($_POST['accuracy']) )
     
     
     
     
     
    {
      extract($_POST); //cree les variables $lat, $long et $acc en lisant les index de $_POST
     
      $toWrite = $longitude .",".$latitude.",".$accuracy; //on s'occupera de ca après
     
      echo "longitude:".$longitude;
      //TODO ecriture dans le fichier
     
    $myFile=fopen("data.txt","w");
     
    fputs($myFile,"  $towrite");
     
    }
     
    else
     
    {
      echo "Erreur";
    }
     
     
     
    ?>

  14. #14
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Sur le script de récup je pense que tout est ok.
    Si tu ne postes que le code qui est OK selon toi, ça ne va pas aider à résoudre le problème...

    Cependant, tu ne devrais pas utiliser extract() qui est une fonction assez dangereuse, surtout avec des données utilisateur...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  15. #15
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    J'espère que tu as au moins corrigé le fait que tu envoies les paramètres lat long et acc en JavaScript et que tu testes $longitude, $latitude et $accuracy en PHP
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Bonjour Bovino,

    voila je suis découvert je ne pipe rien en js .... Bon merci les gars de votre aide je reviendrais vous exposer mes découverts



    bonne soirée

    Bonce soir j 'en suis la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="refresh" content="3; URL=recup.php">
    <title>iPhone 3.0 geolocation demo</title>
    <meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" name="viewport"/>
    <script>
    function handler(location) {
    var message = document.getElementById("message");
    message.innerHTML+="<p>Longitude: " + location.coords.longitude + "</p>";
    message.innerHTML+="<p>Latitude: " + location.coords.latitude + "</p>";
    message.innerHTML+="<p>Accuracy: " + location.coords.accuracy + "</p>";
     
     
     
     
     //Envoie des donnees
        $.post("recup.php", "long="+location.coords.longitude+"&lat="+location.coords.latitude+"&acc="+location.coords.accuracy);
     
     
     
    }
    navigator.geolocation.getCurrentPosition(handler);
     
     
     
    </script>
    </head>
    <body>
    <div id="message">Location unknown</div>
    </body>
    </html>



    et le fichier de réception ( enfin la ce réceptionne rien ..mais bon )


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    <?php
     
    if(isset($_POST['lat']) && isset($_POST['long']) && isset($_POST['acc']) ){
    extract($_POST); //cree les variables $lat, $long et $acc en lisant les index de $_POST
     
     
     
     
    echo"$long";
     
     
     
     
     
    $toWrite = $long.",".$lat.",".$acc; //tu peux modifier celle-ci comme tu veux
     
    //Ici tu mets une fonction qui ecrit a la fin de ton fichier de log, je te laisse chercher google pour faire ca.
     
     
     
     
    echo"$long";
     
     
     
     
     
    }
     
    ?>

  17. #17
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    quel est le nom de ton fichier de récupération? recup.php? il est bien dans le meme dossier que ton premier code?

  18. #18
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    BONJOUR GOTOLOG


    OUI ..

Discussions similaires

  1. Passage de variables d'une activité vers une classe
    Par ruyeken dans le forum Android
    Réponses: 2
    Dernier message: 18/02/2013, 13h37
  2. Passage variable d'une JSF vers Popup
    Par sky88 dans le forum JSF
    Réponses: 0
    Dernier message: 28/06/2011, 16h55
  3. passage de données d'une popup vers une page PHP
    Par loukili81 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/03/2006, 18h54
  4. [Cookies] passage de variable d'une page a l'autre
    Par BernardT dans le forum Langage
    Réponses: 1
    Dernier message: 15/11/2005, 01h50
  5. Passage de variable dans une requête
    Par zestrellita dans le forum Langage SQL
    Réponses: 5
    Dernier message: 02/09/2004, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo