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 :

[AJAX] Récupération de variable php


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut [AJAX] Récupération de variable php
    Bonjour,
    j'ai créé une table tb_type puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    INSERT INTO `tb_type` (`id_type`, `lib_type`, `tarif_type`) VALUES 
    (1, 'National - Durée 6 mois', 299.00),
    (2, 'National - Durée 12 mois', 599.00),
    (3, 'Départemental - Durée 12 mois', 199.00),
    (4, 'Communal - Durée 12 mois', 159.00);
    sur une page.php je crée la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    ...//connexion à la base de donnée
    $sql="select * from tb_type";
    $res = mysql_query($sql);
    $tab = mysql_fetch_assoc($res);
    ?>
    ensuite je crée la function pour instancier l'objet, puis la function pour récupérer les prix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function prix(){
    	var xhr = getXhr(); //getXhr(); function instanciation objet créer auparavant
     
       xhr.onreadystatechange = function(){
    	if(xhr.readyState == 4 && xhr.status == 200){
     
    	// Et voila à partir d'ici je ne sais pas tros quoi faire lol
            //je voudrais créer 4 variables qui auront pour valeur les tarif_type 
            //cf table tb_type
    }
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Salut,

    Si j'ai bien compris, tu veux uniquement récupérer tous les prix de la table.
    Pourquoi utiliser une fonction en javascript, tu peux très simplement le faire dans une page en php, non ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    et ca ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function prix () {
      xhr = getXhr ();
      xhr.onreadystatechange = function() {
        if(xhr.readyState == 4 && xhr.status == 200) {
        // C'est ici que tu va recuperer la valeur de xhr.responseText
        return xhr.responseText;
        }
      }
      xhr.open("GET","query.php?action=prix", false);
      xhr.send(null);
    }
    Voila, maintenant ca se corse un peu: le responseText est une chaine de caractères. Il faudrais donc que tu transforme le tableau $tab en chaine de caractères dans ton script php. Ensuite, une fois récupéré dans ton javascript, tu fais la manip inverse pour transformer ta chaine en tableau.

    Fait un tour sur la reference de la fonction PHP implode ().

  4. #4
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    @mikaoul j'ai fait une formulaire presque tout en javascript


    j'ai pas très bien compris car
    j'ai une page query.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    ....//connection base
    $sql_prix = "SELECT * FROM tb_type";
    $res_prix = mysql_query($sql_prix);
    $tab_prix =array();
    while($prix_pub = mysql_fetch_assoc($res_prix)){
            prix = $prix_pub['tarif_type'];
            array_push($tab_prix, $prix);
    }
    ?>
    seulement cette requète dans query.php
    puis comment récupérer $tab_prix[0], $tab_prix[1], $tab_prix[2], $tab_prix[3],
    ? en js genre var prix_U = $tab_prix[0]...prix_D=..
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  5. #5
    Membre habitué Avatar de dream_of_australia
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2007
    Messages : 167
    Points : 136
    Points
    136
    Par défaut
    Tu peux mettre dans ton fichier query.php des echo qui afficheront tout le code que tu veux dans ta page finale, c'est comme ça que je fais. L'AJAX te permet de modifier le contenu de toute une partie de ta page sans la recharger, je ne sais pas si c'est très adapté à un passage de variables multiples.

    exemple echo "Prix : " . $prix . "&euro;"" ... en faisant des boucles pour tout afficher. Tu peux tout mettre : tableaux, mise en page, variables etc...

    Ensuite tu mets dans ta page un <div id='listeprix'></div> qui est vide.

    Lorsque tu as ton xhr.responseText tu fais : document.getElementById('listeprix').innerHTML = xhr.responseText ;

    Voilà j'espère t'avoir aidé !

  6. #6
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    je ne veux pas lister les prix mais seulement les 'attribuer' à des variables javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    var prix_U = $tab_prix[0];
    var prix_D= $tab_prix[1];
    var prix_C =$tab_prix[2];
    var prix_N =$tab_prix[3],
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Tu peux passer par le XML dans ce cas:

    A partir d'un fichier php, tu génères du xml. Dans ce cas, tu récupères ton code avec responseXML.
    Ensuite tu le traites en javascript en créant un tableau.

    Un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function prix () {
      xhr = getXhr ();
      xhr.open("POST","listePrix_XML.php", false);
      xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      xhr.onreadystatechange = function() {
        if(xhr.readyState == 4 && xhr.status == 200) {
        // C'est ici que tu va recuperer la valeur de xhr.responseText
         traiterXML(xhr.responseXML);
        }
      }
      
      xhr.send("prix="+prix);
    }
    Ta fonction de traitement en javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function traiterXML(xmlDoc) {
      var prix = xmlDoc.getElementsByTagName('prix');
      var listePrix = new Array();
      for (var i=0; i < prix.length; ++i) {
        listePrix .push(prix[i].firstChild.data);
      }
      return listePrix ;
    }
    Et enfin ton code php pour listePrix_XML.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
    <?php
    header('Content-Type: text/xml;charset=utf-8');
    print(utf8_encode("<?xml version='1.0' encoding='UTF-8' ?><liste>"));
    if (isset($_POST['prix'])) {
        $prix= utf8_decode($_POST['prix']);
    
       
    ....//connection base
    $sql_prix = "SELECT * FROM tb_type";
    $res_prix = mysql_query($sql_prix);
    $tab_prix =array();
    while($prix_pub = mysql_fetch_assoc($res_prix)){
         print (utf8_encode("<prix>".$prix_pub['tarif_type']
    ."</prix>"));
    
    
    
    print ("</liste>");
    ?>
    Voilà, bon courage

Discussions similaires

  1. récupération des variables php
    Par olfa_bl dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/04/2012, 16h07
  2. récupération de variables php dans un formulaire
    Par xanthos dans le forum Langage
    Réponses: 3
    Dernier message: 22/07/2011, 09h52
  3. Récupération de variables PHP en AS3
    Par SubZero2 dans le forum ActionScript 3
    Réponses: 5
    Dernier message: 26/09/2010, 23h48
  4. [AJAX] Ajax, onclick et variable PHP
    Par fashuai dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/09/2008, 08h28
  5. [PHP-JS] Récupération de variable php en javascript
    Par akara dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/07/2007, 18h08

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