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

HTML Discussion :

[htm/JavaScript] Pbm affectation variable d'environnement


Sujet :

HTML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 31
    Points : 25
    Points
    25
    Par défaut [htm/JavaScript] Pbm affectation variable d'environnement
    Bonjour, j'au 2 menus déroulants, et je veux mettre à jour le second avec la valeur selectionnée dans la premier sans avoir de bouton submit ! Pour cela j'utilise un post caché avec une fonction JavaScript! a l'interieur de la focntion Afficher(), l'affiche me montre bien que "IdRetour" du post hidden a bien été affecté a la bonne valeur mais dans le <Select> la variable a l'air vide, rien n'est affiché dans le menu déroulant ! merci de votre aide.


    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
    <form name="beep" method="POST">
     
    <SELECT NAME="raison" onChange="javascript : Afficher();">
    <option value="cine">Cinema</option>
    <option value="thea">Théâtre</option>
    </SELECT>
     
    <SELECT NAME="btp">
    <?
    $variable = $_POST['$idRetour'];
    print "<option>".($variable)."</option>";
    ?>
    </SELECT>
     
    <input type="hidden" name="idRetour">
    </form>
     
    <script language="javascript"> 
    function Afficher() 
    { 
      var id = document.forms.beep.raison.value ; 
      document.forms.beep.idRetour.value = id ;
      //document.write("l'entreprise est "+id+");  //l'affichage ici est ok !
      document.forms.location.submit() ; 
    } 
    </script>

  2. #2
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Dans un premier temps si je peut te donner un conseil utilises firefox avec le web developper tools, comme ca tu as plein d'outils en plus... dans la console javascript j'ai récupéré ca:

    Erreur : document.forms.location has no properties
    Fichier Source : http://activity-tracking.highdeal.com/ATT/tests/team.php
    Ligne : 20
    de là tu déduit que ta syntaxe est fausse, est devrait être celle là:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms.beep.submit() ;
    ensuite il te reste un autre problème dans le code PHP cette fois, tu utilises comme clé du tableau POST '$idRetour' !!!! or ce n'est pas bon, il faut utiliser 'idRetour'

    en clair ca donne ca ton code :

    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
     
    <form name="beep" method="POST">
     
    <SELECT NAME="raison" onChange="Afficher();">
    <option value="cine">Cinema</option>
    <option value="thea">Théâtre</option>
    </SELECT>
     
    <SELECT NAME="btp">
    <?
    $variable = $_POST['idRetour'];
    print "<option>".($variable)."</option>";
    ?>
    </SELECT>
     
    <input type="hidden" name="idRetour">
    </form>
     
    <script language="javascript">
    function Afficher()
    {
      var id = document.forms.beep.raison.value ;
      document.forms.beep.idRetour.value = id ;
      //document.write("l'entreprise est "+id+");  //l'affichage ici est ok !
      document.forms.beep.submit() ;
    }
    </script>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 31
    Points : 25
    Points
    25
    Par défaut
    Merci rapathonyk ! ca marche tres bien !
    j'ai une autre petite question, en fait j'avais reproduit mon probleme a plus faible echelle mais en fait je travaille sur une base de données derrieres, les menus déroulants sont le fruit de requete, etc ...
    Dès que je sélectionne la valeur souhautée dans mon premier menu, le second se met bien à jour ! le premier menu, au rafraichissement se repositionne sur le premier élément de ma requete ! comment pourraisje empêcher cela, et affiché l'élément séléctionné avant le rafraichissement !
    merci

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    en voyant l'effet que ca faisait je me doutais que cette question allé surgir...

    il suffit de rajouter l'attribut selected à la bonne balise option...
    vu que tu construit tes options à partir d'une bd ca devrait etre simple

    un pti exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <SELECT NAME="raison" onChange="Afficher();">
    <option value="cine">Cinema</option>
    <option value="thea" selected>Théâtre</option>
    </SELECT>
    oublie pas le pti si ca résout tous tes problèmes

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 31
    Points : 25
    Points
    25
    Par défaut
    c moins évident que je pensais , j'ai fais des tests comme ds l'exemple ci dessous ou encore avec (isset($_POST['idRetour'])) le résultats est le meme, ca ne marche pas !!! encore un peu d'aide

    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
    <form name="beep" method="POST"> 
     
    <SELECT NAME="raison" onChange="Afficher();"> 
    <?
    //affichage des résultats de la requête du premier menu déroulant 
    while ($r = mysql_fetch_array($result)) {
        if($r[0] == $_POST['idRetour']){
            print "\t<option".($r[0])." selected><\option>";
       }else
       {
            print "\t<option>".($r[0])."\n";
       }
    }
     
    ?>
    </SELECT> 
    ...

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    argh, c'est illisible sans la balise code !!!

    enfin bref, je vais essayer de lire quand même

    c'est quoi ta requête ? tu sélectionnes pas des champs ? c'est souvent vachement plus clair quand tu utilises $r['monNomDeChamp'] autant pour te relire que si quelqu'un doit te relire...

    de plus, $r[0] doit surement correspondre à une valeur (ciné par exemple...) donc il faudrait pas que tu oublies le value=".$r[0]." dans ton while...

    et pis dans ton else tu fermes pas ton option... bref, ya de l'uniformisation dans l'air..

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 31
    Points : 25
    Points
    25
    Par défaut
    dsl je pense qu'il y une autre solution, car c'est un peu le bordel et surtout ca ne marche pas!

    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
     
    $sql="SELECT Raison_sociale FROM entreprise";
    //---- exécution requete SQL 
    $result = mysql_query($sql); 
    ?>
     
    <form name="beep" method="POST"> 
     
    <SELECT NAME="raison" onChange="Afficher();"> 
    <?
    //affichage des résultats de la requête du premier menu déroulant 
    while ($r = mysql_fetch_array($result)) {
        if($r['Raison_sociale'] == $_POST['idRetour']){
            print "\t<option value='0' selected>".($r['Raison_sociale'])."<\option>";
       }else
       {
            print "\t<option>".($r['Raison_sociale'])."\n</option>";
       }
    }
     
    ?>
    </SELECT>
    idretour est la valeur renvoye par l autre menu

  8. #8
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    qu'est-ce qu'y ne marche pas ????

    peut-etre une piste au cas où:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if($r['Raison_sociale'] == $_POST['idRetour']){
            print "\t<option value='".$r['Raison_sociale']."' selected>".($r['Raison_sociale'])."<\option>";
       }else
       {
            print "\t<option value='".$r['Raison_sociale']."'>".($r['Raison_sociale'])."</option>";
       }
    sinon fait du debug, met juste avant ton if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print $r['Raison_sociale']." == ".$_POST['idRetour'];
    tu verras bien pourquoi ca plante

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 31
    Points : 25
    Points
    25
    Par défaut
    C bon ca marche !!! merci a toi !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affecter variable PHP à une variable Javascript
    Par torrgovin dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/10/2010, 15h36
  2. Pbm Variable d'environnement et test makefile
    Par ArnSpin dans le forum Administration système
    Réponses: 1
    Dernier message: 23/04/2010, 16h27
  3. Variable d'environnement JavaScript
    Par thierrySch dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/07/2007, 18h16
  4. récupération de variable d'environnement windows avec javascript
    Par dorian2031 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/11/2006, 11h37
  5. [PHP-JS] Affecter variable javascript a une variable php
    Par dam_moreyllo dans le forum Langage
    Réponses: 2
    Dernier message: 13/01/2006, 15h54

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