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 :

[PHP-JS] Problème de variable PHP dans un script JS


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 89
    Points
    89
    Par défaut [PHP-JS] Problème de variable PHP dans un script JS
    Salut tout le monde !!

    Voilà, j'ai créé un formulaire SELECT (liste déroulante) comprenant les famille des produits et j'aimerai que lorsque la personne sélectionne une famille, le navigateur affiche sous la liste déroulante les produits de cette famille. Voici mon code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while ($famProd = mysql_fetch_row($resu)) { 
                $Nom = $famProd[0]; 
                $num = $famProd[1]; 
                $inter = $inter. "<option selected value=$num>$nom <br> "; 
                $Choix = "  <select name=Famille> onChange = 'javascript:filltheselect(this.$num)' 
     
                          $inter 
                          </option> 
                      </select>";    
             }
    Code de la fonction :

    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
    function filltheselect ($numero) { 
     
          $req1 = "SELECT LibelléProduit from Produit where FamilleProduit_idFamilleProduit = $numero "; 
          $resu1 = mysql_query($req1); 
     
          if ($resu1) { 
             while ($Produit = mysql_fetch_row($resu1)){ 
                $Nom = $Produit[0]; 
                $code = " $nom"; 
                echo "$code";
     
     
             }    
     
          } 
     
     
       }
    Là ça ne peut pas marcher car on ne peut pas envoyer une variable PHP dans un script JS. Mais comment puis-je faire alors ??
    J'ai trouvé un lien intéressant dans la FAQ du site mais il ne traitait pas mon cas précis.

    Bref, un grand merci à ceux qui pourront m'aider parce que là je bloc complet

  2. #2
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    comme tu l'as dis, javascript s'execute coté client, php coté serveur.

    Soit tu précharges toutes tes données dans le javascript à l'appelle de la page, si tu n'en as pas beaucoup
    soit tu utilises la méthode xmlhttprequest de javascript

  3. #3
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 89
    Points
    89
    Par défaut
    Merci beaucoup de ta réponse Oluha ! Je ne connaissais pas xmlhttprequest, ça à l'air très puissant ! J'ai fait une recherche sur le net et j'ai trouvé un exemple utilisant cette technologie se rapprochant de ce que je souhaite faire, j'ai donc tester le source chez moi mais ça ne marche pas.

    Voici le code que j'ai trouvé sur le net :

    Code 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    var l1    = f.elements["list1"];
    var l2    = f.elements["list2"];
    var index = l1.selectedIndex;
    if(index < 1)
       l2.options.length = 0;
    else {
       var xhr_object = null;
     
       if(window.XMLHttpRequest) // Firefox
          xhr_object = new XMLHttpRequest();
       else if(window.ActiveXObject) // Internet Explorer
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
       else { // XMLHttpRequest non supporté par le navigateur
          alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
          return;
       }
     
       xhr_object.open("POST", "species.php", true);
     
       xhr_object.onreadystatechange = function() {
          if(xhr_object.readyState == 4)
             eval(xhr_object.responseText);
       }
     
       xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
       var data = "family="+escape(l1.options[index].value)+"&form="+f.name+"&select=list2";
       xhr_object.send(data);
    }

    Contenu de specifie.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
    header('Content-type: text/html; charset=iso-8859-1');
     
    $mysql_db = @mysql_connect("sql.free.fr", "robloche", "********");
    @mysql_select_db("robloche");
     
    $query  = "SELECT `Species` FROM `Animals` WHERE `Family` = '".$_POST["family"]."'";
    $query .= " ORDER BY `Species`";
    $result = @mysql_query($query);
     
    echo 'var o = null;';
    echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
    echo 's.options.length = 0;';
    while($r = mysql_fetch_array($result))
    	echo 's.options[s.options.length] = new Option("'.$r["Species"].'");';
     
    @mysql_close($mysql_db);
    Ne connaissant rien du tout au JS et encore moins à xmlhttprequest j'ai mis le morceau de code JS dans un fichier html entre une balise <SCRIPT LANGUAGE="Javascript"> puis le second morceau de code dans un fichier PHP. Pensez vous que c'est cela qu'il fallait faire ?

    @ller, bonne soirée !!

    PS : Si vous voulez voir se que ce code produit aller à : http://robloche.free.fr/javascript/tuto_xhr/tuto_xhr.html#section_05

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/06/2006, 16h35
  2. [PHP-JS] Passer une variable PHP->JS dans une boucle
    Par PedroBD dans le forum Langage
    Réponses: 2
    Dernier message: 12/05/2006, 11h43
  3. [PHP-JS] Renseigner une variable php dans une fonction JS
    Par gwen-al dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/04/2006, 08h31
  4. Récupérer des variables Perl dans un script PHP
    Par barabath dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 01h27
  5. [PHP-JS] utiliser une variable php dans du javascript
    Par kcizth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/02/2006, 11h53

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