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

AJAX Discussion :

[AJAX] Passer des variables Php à JS et vis versa


Sujet :

AJAX

  1. #1
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut [AJAX] Passer des variables Php à JS et vis versa
    Bonjour,

    Je viens chercher de l'aide sur ce forum pour avoir des informations sur la manière de passer des valeurs d'une variable PHP à une variable JS ou vis versa. Je code déjà pas trop mal en php et je débute en JS, j'ai fais deux trois lectures de tutos sur ajax mais j'avoue ne pas avoir touvé l'information que je voulais.

    J'ai customisé l'API de google map et je souhaiterai pouvoir l'administrer depuis un script php avec formulaire et BDD. Le problème c'est que je ne sais pas comment faire passer de PHP à Javascript les valeurs de mes variables obtenu suite à une requette.

    Je vous remercie de vos conseils par avance!

    tutos, avis, bouts de scripts sont les bienvenues! mais j'avoue que je préfèrerai vos avis et des tis bouts de script car mon ami google ne m'a pas donné satisfaction.

  2. #2
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Salut,

    Tu peux passer des variables de javascript à PHP soit en get, soit en POST.

    J'ai l'habitude de les passer en POST.

    Voici le code nécessaire pour passer des variables à PHP via javascript avec la méthode POST :

    Ceci est la page à laquelle tu vas passer tes variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	xhr.open("POST","AJAX/Enregistrer_Filiere.php",true);
    Tu les récupèreras avec $_POST['Variable']

    Ceci est indispensable par l'envoi de variable par la méthode POST :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    Je ne sais pas si c'est la même chose en get

    Et voici comment passer les variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xhr.send("numero_choix="+numero_choix+"&filiere_choisie="+filiere_choisie+"&matricule="+matricule);
    J'espère que cela t'aidera un petit peu.

    beegees

  3. #3
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    C'est expliqué dans la FAQ
    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

  4. #4
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut
    Merci à vous deux! je réagis de suite pour éventuellement avoir un deuxième avis donc dans mon cas de google map je récupère les données dans ma base et tout le script JS je le mets dans des prints de la manière suivante.

    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
     
    <?php
        mysql_connect('','','');
        mysql_select_db('');
        $sql = myql_query('SELECT*FROM coordonnees_geo');
        $tbl = mysql_fetch_array($sql);
        print '<script type="text/javascript" language="javascript">';
        print "
     
    	function load() {
    var map = new GMap2(document.getElementById("map"));
    map.setCenter(new GLatLng($tbl[adresse]), 15);
    map.addOverlay(marqueur);
    	map.addMapType(G_PHYSICAL_MAP);
    	map.addControl(new GMapTypeControl());
    	map.addControl(new GLargeMapControl());
    	map.enableScrollWheelZoom();
     
    }
     
    GEvent.addListener(marqueur, 'click', function()  {
    marqueur.openInfoWindowHtml('<b>Marqueur</b><img src='aca4.png' style='width:50px;height:100px'><br><InfoWindowHtml>'); } );
    ";
        print '</script>' ;
    ?>
     
    <div id="map" style="width:400px;height:400px;" onload="load();">
    </div>
    la fonction n'est pas complète mais c'est pour le principe de fonctionnement merci déjà pour vos interventions.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 26
    Par défaut
    Pour passer des variables de php à javascript tu peux utiliser des champs cachés.

    <input type='hidden' id='ma_var' value='<?=$maVar?>'/>

    côté js :

    var maVar = document.getElementById('ma_var').value;

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    dans ton code tu utilises des balise HTML,
    pourquoi ne pas mettre tout simplement les script dans une balise script HTML
    au lieu de le mettre dans PHP en utilisant echo print() pour éviter les erreurs
    de concaténation et des guillemets comme tu faits.
    print "
    function load() {
    var map = new GMap2(document.getElementById("map"));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    print "
    	function load() {
    var map = new GMap2(document.getElementById('map'));

  7. #7
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut
    Malgrè vos exemples je ne parviens pas à récupérer mes valeurs de variables php dans des variables JS, je suis toujours à la recherche d'infos mais sans résultat à croir que c'est impossible ou que personne ne sachant faire ce genre chose n'a posté sur a toile une réelle info.

    J'ai trouvé un petit truc que j'ai testé avec un script tout simple mais ça ne fonctionne pas non plus. Je pédale complet dans la semoule et j'avance pas.

    Voila le dernier test que j'ai effecté:

    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
     
    <html>
           <head>
                 <?php 
     
                     mysql_connect('localhost','root','');
                     mysql_select_db('map');
                     $rep = mysql_query("SELECT adress FROM adresse WHERE id='1'");
                 ?>
                <script type="text/javascript">
                var mess = ('<?php echo $rep; ?>');
                function affich() 
                      {
                      alert(mess);
                      }
                </script>
          </head>
    <body>
            <p onclick="affich();">click</p>
    </body>
    </html>
    Que dire de plus que AU SECOUUUUUUUUUUUR.

  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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    var mess = <?php echo "'".$rep."'"; ?>;
    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 éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut
    Ok mais tout ça c'est pas de l'AJAX !

    de plus je galère car j'ai pas mal de ligne dans ma table onc mais variable sont dans une boucle.

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Non, c'est du simple javascript.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php 
     
                     $db=mysql_connect('localhost','root','');
                     mysql_select_db('map');
                     $rep = mysql_query("SELECT adress FROM adresse WHERE id='1'");
                     $rows = mysql_fetch_array($rep,$db);
                 ?>
               <script type="text/javascript">
                var mess = "'"<?php echo $rows[0]; ?>"'";
                function affich() 
                      {
                      alert(mess);
                      }
                </script>

  11. #11
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut
    andry.aime encore merci pour tes deux interventions. Je vais étudier ta proposition plus en détail. Le truc je suppose c'est que je dois savoir combien j'ai d'entré dans ma table par enxemple en faisant une requete avec count et après je fais une boucle dans javascript qui va me créer autant de variables que j'ai de valeurs.

    c'est ça ? parce qu'avec $var[0] ou [1] ou [2] c'est moi qui détermine la ligne à prendre. Mais si je sais pas exactement combien j'ai d'enregistrement je suis ennuyé. Est-ce que j'ai bien compris?

  12. #12
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    J'ai pas bien compris ce que tu voulais mais je pense que ceci peut t'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <script type="text/javascript">
    var tableau = new Array([<?php while($rows = mysql_fetch_array($rep,$db)){echo ($rows['0'].',')} ?>]);
    tableau.pop();
    </script>
    Ainsi tu mets dans un tableau javascript tous les valeurs de la table après ton requête.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/04/2008, 18h36
  2. [Smarty] passer des variables smarty dans {php}
    Par emile13 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 18/02/2008, 19h51
  3. [AJAX] passer des variables en ajax
    Par domishao dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/12/2007, 14h25
  4. [PHP-JS] Passer des variables d'un menu déroulant
    Par pascalbout1 dans le forum Langage
    Réponses: 6
    Dernier message: 30/07/2007, 16h50
  5. Réponses: 3
    Dernier message: 03/02/2005, 13h07

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