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

JavaScript Discussion :

variable javascript>php


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 129
    Points : 47
    Points
    47
    Par défaut variable javascript>php
    Bonjour
    j'ai fait un petit script google map qui permet de renseigner une adresse dans un formulaire, de récuperer la latitude et la longitude de l'adresse, et de les transmettre dans une autre page, par des valeurs php.
    Seul pb : sur la 2eme page, au lieu d'afficher la valeur de la variable php (contenant la latitude et la longitude), il m'affiche la fonction censée calculer ces valeurs à la page précédente...
    si vous pouvez m'aider à résoudre ce probleme ca serait sympa parce que là je galere...
    Merci

    voilà le code de la premiere page qui cherche les coordonnées a partir de l'adresse renseignée dans le formulaire

    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
    41
    42
    43
    44
     
    <head>
    <title>Application Google Map</title>
    <script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAal_cd43vOKPQhNkPDkwHgBQSXE4ITa1YzwIbIoQt-CisjCLm8xTJhtTXHvXoMcij_eu3bNbEGnk_PA" type="text/javascript"></script>
    <style type="text/css">
     
    </style>
    </head>
    <body style="margin: 0px; padding: 0px;">
     
    <form action="afficher.php" method="post">
    <input type="text" id="address" name="address" value="" />
    <input type=hidden name="latLngStr" value="showAddress(address.value)">
    <input type="submit" id="submit" value="Localiser" />
    </form>
     
    <div id="map" style="width: 400px; height: 300px"></div>
     
    <script type="text/javascript">
     
    //<![CDATA[
     
     
        /* Création de l'objet GClientGeocoder */
        var geocoder = new GClientGeocoder();
     
        /* Fonction qui à partir d'une adresse va déterminer le point géographique */
        function showAddress(address) {
            if (geocoder) {
                geocoder.getLatLng(address, function(point) {
                    if (!point) { /* Si les coordonnées n'ont pas été trouvés */
                        alert("Impossible de localiser l'adresse :\n\n" + address);
                    } else {
    				var latLngStr = '(' + point.y + ', ' + point.x + ')';
    				return (latLngStr);
                    }
                });
            }
        }
    //]]>
     
    </script> 
    </body>
    </html>

    et voilà le code de la page afficher.php, qui affiche les valeurs de la latitude et longitude :

    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
    <html>
    <body>
    <?php 
     
    if(isset($_POST['latLngStr']))
    {
            $calcul=$_POST['latLngStr'];
    }
    else
    {
            $calcul="pas de valeur";
    }
     
    echo "$calcul";
     
    ?>
    </body>
    </html>
    le résultat est malheureusement "showAddress(address.value)" et non les valeurs de latitude et longitude..

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=hidden name="latLngStr" value="showAddress(address.value)">
    normal le valu ne peut accepter une fonction...
    en fait si j'ai bien compris tu espère que le resultat de la valuer retournée par la fonction se colle dans le value ?

    pour cela tu sera obligé à un moment de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByTagName('latLngStr').value=showAddress(address.value)
    avant de submitter le form ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    voilà je veux que le résultat de la fonction se colle dans le value.
    met ou dois je placer le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByTagName('latLngStr').value=showAddress(address.value)
    ?
    Merci pour ton aide.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    ben à quel moment veux tu que la valeur se mette dans l'input ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    le but est de taper une adresse dans le formulaire
    puis lorsqu'on clique sur submit, lancer la fonction showadress qui retourne les coordonnées.
    et mettre ces coordonnées dans la variable latLngStr qu'on transmet à la page suivante (afficher.php)

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    alors dans le onsubmit de ton formulaire ...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    merci pour ton aide
    j'ai donc modifié le code de mon formulaire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action="afficher.php" method="post" onsubmit="document.getElementsByTagName('latLngStr').value=showAddress(address.value)">
    <input type="text" id="address" name="address" value="" >
    <input type=hidden name="latLngStr">
    <input type="submit" id="submit" value="Localiser" />
    </form>
    mais je n'ai aucune valeur qui s'affiche dans la page afficher.php, lorsque j'appelle ma variable latLngStr...tu vois ce qui peut clocher?

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="document.getElementsByTagName('latLngStr')[0].value=showAddress(address.value)">

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    toujours pas

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type='text/javascript'>
    function showAddress(adr){
    var retour=adr + ' valeur ajoutée'
    return retour;
    }
    </script>
    </head>
    <body  >
    <form action="javascript:alert(document.getElementById('latLngStr').value)" method="post" onsubmit="document.getElementById('latLngStr').value=showAddress(document.getElementById('address').value)">
    <input type="text" id="address" name="address" value="" >
    <input type=hidden id="latLngStr" name='latLngStr'>
    <input type="submit" id="submit" value="Localiser" />
    </form>
    </body>

    parcontre dans ton cas tu sera peut être obligé de coller un setinterval pour tester le retour de la fonction de coordonnées ...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    quand je fais ca j'ai une alerte javascript avec marqué "undefined"...
    puis une autre alerte avec écrit "impossible de localiser l'adresse"
    (alors que normalement elle est localisable...)
    je me demande si la variable latLngStr est bien définie?

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Quoi avec mo code telquel ou en y incluant ta focntion de coordonnées ...

    as tu mis un setTimeout ??? à mon avis tu as un problème de retour de coordonnées de la fonction ...

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    salut
    j'ai bien utilisé ton code
    (ci-dessous la totalité du code)
    la fonction de calcul des coordonnées marche bien puisque quand je fais un alert ('latLngStr' ) à la fin de la fonction il m'affiche bien les coordonnées.
    par contre je n'ai pas mis de settimeout, ca sert a quoi et il faut le mettre ou?
    merci encore
    j'espere qu'on va y arriver!

    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
    41
    42
    43
    44
    45
    46
    <head>
    <title>Application Google Map</title>
    <script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAal_cd43vOKPQhNkPDkwHgBQSXE4ITa1YzwIbIoQt-CisjCLm8xTJhtTXHvXoMcij_eu3bNbEGnk_PA" type="text/javascript"></script>
    <style type="text/css">
     
    </style>
    </head>
    <body style="margin: 0px; padding: 0px;">
     
     
    <form action="javascript:alert(document.getElementById('latLngStr').value)" method="post" onsubmit="document.getElementById('latLngStr').value=showAddress(document.getElementById('address').value)">
    <input type="text" id="address" name="address" value="" >
    <input type=hidden id="latLngStr" name='latLngStr'>
    <input type="submit" id="submit" value="Localiser" />
    </form>
     
     
    <div id="map" style="width: 400px; height: 300px"></div>
     
    <script type="text/javascript">
     
    //<![CDATA[
     
     
        /* Création de l'objet GClientGeocoder */
        var geocoder = new GClientGeocoder();
     
        /* Fonction qui à partir d'une adresse va déterminer le point géographique */
        function showAddress(address) {
            if (geocoder) {
                geocoder.getLatLng(address, function(point) {
                    if (!point) { /* Si les coordonnées n'ont pas été trouvés */
                        alert("Impossible de localiser l'adresse :\n\n" + address);
                    } else {
    				var latLngStr = '(' + point.y + ', ' + point.x + ')';
    				var retour=address + 'latLngStr'
    			    return retour;
                    }
                });
            }
        }
    //]]>
     
    </script> 
    </body>
    </html>

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    bon je touche au but j'ai besoin d'un dernier coup de main..
    j'ai testé pas mal de choses et voilà mes conclusions :
    le formulaire comme ceci est ok :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action="afficher.php" method="post" onsubmit="document.getElementById('latLngStr').value=showAddress(address_rech.value)">
    <input type="text" id="address_rech" name="address_rech" value="" >
    <input type=hidden id="latLngStr" name='latLngStr'>
    <input type="submit" id="submit" value="Localiser" />
    </form>
    le probleme vient en effet de la fonction showAddress.
    comme ci-dessous, elle renvoie "undefined"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function showAddress(address) {
     
            if (geocoder) {
                geocoder.getLatLng(address, function(point) {
                    if (!point) { /* Si les coordonnées n'ont pas été trouvés */
                        alert("Impossible de localiser l'adresse :\n\n" + address);
                    } else {
    				var retour='(' + point.y + ', ' + point.x + ')';
    				return retour;
                    }
                });
            }
     
        }
    pourtant, si à la place de "return retour" je met "alert (retour)" et que dans le formulaire je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="document.getElementById('latLngStr').value=showAddress(address_rech.value); return false">
    j'ai bien une alerte javascript avec les coordonnées que la fonction doit renvoyer..alors ou est le probleme?
    svp aidez moi je deviens fou avec ce truc !!

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    heu si tu mets un return false le formulaire ne serra pas soumis ...

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 129
    Points : 47
    Points
    47
    Par défaut
    je n'ai mis le return false que pour tester l'alerte javascript
    apres bien sur il faut l'enlever..
    mais pourquoi quand je fais return retour il met undefined alors qu'avec l'alerte, on voit qu'il y a bien quelquechose dans la variable retour...?

Discussions similaires

  1. [PHP-JS] Passer une variable javascript en php
    Par bibom dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/08/2006, 20h39
  2. [PHP-JS] recuperer une variable javascript dan php
    Par hammag dans le forum Langage
    Réponses: 2
    Dernier message: 07/08/2006, 14h00
  3. [PHP-JS] Transmettre une variable javascript vers php
    Par phpaide dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 20/05/2006, 08h30
  4. [PHP-JS] recuperation de variable javascript avec php
    Par dipajero dans le forum Langage
    Réponses: 3
    Dernier message: 21/03/2006, 20h39
  5. [PHP-JS] variable javascript vers PHP
    Par nicoaix dans le forum Langage
    Réponses: 3
    Dernier message: 17/03/2006, 21h28

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