Aide pour javascript - Page 2

  1. Contributeur
    Pas grave..

    Juste avant ton formulaire tu met ca :
    if( isset( $_POST['mode'] ) )
     $mode = $_POST['mode'];
    else
     $mode = "aucun";
    
    if( isset( $_POST['objet']))
     $objet = $_POST['objet'];
    else
     $objet = "aucun";
    


    Ca permet de récupérer les valeur selectionnée quand tu vas appuyer sur le bouton submit de ton formulaire.

    Ensuite si qqun peut nous dire quelle propriété des liste déroulante permet de mettre une valeur par défaut ca serati sympa de sa part car je ne connait pas.

    merci
    ++
    0
    1. tu pourra essayer avec "selected" de l'objet "<SELECT>" (et non du OPTION)
      0
      1. Contributeur
        Comme cela Sam ?
        <select name="objet" selected=<?php echo $objet; ?>> 
        
        
        0
        1. en tout cas ce code ne fonctionne pas...

          Peut etre parcke je crois que la page se reactualise a chaque fois
          0
          1. Contributeur
            non non, normalement ta page ne dois se réactualiser quand quand tu clique sur le bouton du formulaire : la fonction javascript n'effectue pas de rechargement de la page justement (c'est ca qui est bien).

            Si ca ne marche pas, essai ca pour voir :
            rajoute apres les "if(isset...." que je t'ai fait mettre :
            echo "Valeur de 'mode' = ".$mode."<BR>";
            echo "Valeur de 'objet' = ".$objet."<BR>";
            


            Et dit nous ce qu'il te met .
            0
          2. Contributeur
            Alors, testé ? allé manger peut etre... bon... moi j'vais faire apreil alors,

            ++
            0
        2. Ben j'ai selectionner table et sequence et ca ma afficher cela:

          Valeur de 'mode' = table
          Valeur de 'objet' = sequences

          Mais je comprend pas parcke ca reviens kan meme a ma valeur par defaut....
          0
          1. Contributeur
            les deux reviennent a féfault ?
            Tu as fait le changement dans les deux SELECT ? pas seulement pour objet, mais aussi pour le mode sinon c'est sur que ca changera rien.
            0
        3. Il me semble avoir effectuer tous les changements et pourtant ca ne fonctionne toujorus pas...

          merci kan meme pour votre aide

          si vous avez une autre idée je suis toujorus a l'écoute
          0
          1. Contributeur
            ok, alors remplace :
            <select name="objet" selected=<?php echo $objet; ?>> 
            

            par ca :
            <?php
            echo "<select name=\"objet\" selected=\"".$objet."\">";
            ?> 
            

            Pour les deux select et redit ca.

            ++
            0
            1. j'ai fait ca:
               sélectionnez ce que vous désirez faire:</font></i></font></div> 
                         <?php
              	   echo "<select name=\"mode\" selected=\"".$mode."\"  onchange='change_mode()'>";?>  
                            <option value="formulaire" selected>Formulaires</option> 
                            <option value="table">Tables</option> 
                            <option value="requete">Requêtes</option> 
              	   </select> 
                       <?php
              	echo "<select name=\"objet\" selected=\"".$objet."\">";?>    
                           <option value="sequences">Nouvelle séquence</option>
                            <option value="alignements">Nouvel alignement</option>
                            <option value="primers">Nouveau primer</option>
                            <option value="resultats_analyses">Nouvelle analyse</option>
                            <option value="types_sequences">Nouveau type de sequence</option>
                            <option value="types_analyses">Nouveau type d'analyse</option>
              	      <option value="individus">Nouvel organisme</option>
              	      <option value="tissus">Nouveau tissu</option>
                          </select> 
              


              et ca ca ne fonctionne pas.

              Mais j'ai quand meme l'impression que mon menu se reactualise a chaque fois parcke j'explique:

              quand je selectionne par exemple table et quelque chose au chargement de la page correpsondant le menu disparait et reapparait avec la nouvelle page..

              Après peut etre jme trompe..........
              0
              1. Contributeur
                ben .. si tu le dit c'est que ca se recharge.
                Par contre juste un petit truc qui n'a pas grand chose à voir :
                <option value="formulaire" selected>Formulaires</option> 
                

                Faut virer le selected apres "formulaire"
                0
            2. J'a itrouver comment garder la denrière valeur selectionner.

              Il suffit de faire ceci:
              <select name="mode" onChange="change_mode();">

              <option value="formulaire" <?if($mode=="formulaire") echo "selected"; ?> >Formulaires</option>
              <option value="table"<?if($mode=="table") echo "selected"; ?>>Tables</option>
              <option value="requete" <?if($mode=="requete") echo "selected"; ?>>Requêtes</option>
              </select>

              Par contre je n'arrive pas a faire pareil pour me soptions, je ne vois pas ou l'inclure dans mon code

              Si vous avez une idée.
              0
              1. Contributeur
                Cool ! De la même facon non que tu as fait pour le mode non ?
                0
            3. Ben le probleme est que si tu regarde mon code tu peux voir que option n'est pas construit pareil.

              J'ai les différentes options de formulaire,table et requete dans mon code en javascript

              et j'ai seulement les options de formulaire dans ce format:

                    
              	<select name="objet" >
                           <option value="sequences">Nouvelle séquence</option>
                            <option value="alignements">Nouvel alignement</option>
              ...
              


              alors comme je l'ai dit je sais pas ou mettre le truc ki me permettra de rester sur la dernière option
              0
              1. Contributeur
                ??? je vois toujours pas le pb, tu peux remettre tout ton code pour voir l'ensemble.
                0
            4. Voici mon code

              <head>
              <script language="Javascript"> 
                      function change_mode() 
                      { 
                       ind = document.menu.mode.selectedIndex; 
                       if (document.menu.mode.options[ind].value == 'formulaire') 
                       { 
                       document.menu.objet.options.length = 0; 
              		var o=new Option('Nouvelle séquence','sequences');
              		document.menu.objet.options[document.menu.objet.options.length]=o; 
              		var o=new Option('Nouvel alignement','alignements');
              		document.menu.objet.options[document.menu.objet.options.length]=o;
              		var o=new Option('Nouveau type de sequence', 'types_sequences');
              		document.menu.objet.options[document.menu.objet.options.length]=o; 
              		var o=new Option('Nouveau primer','primers');
              		document.menu.objet.options[document.menu.objet.options.length]=o; 
              		var o=new Option('Nouvelle analyse','resultats_analyses');
              		document.menu.objet.options[document.menu.objet.options.length]=o; 
              		var o=new Option('Nouveau type d\'analyse','types_analyses');
              		document.menu.objet.options[document.menu.objet.options.length]=o;
              		var o=new Option('Nouvel organisme','individus');
              		document.menu.objet.options[document.menu.objet.options.length]=o;
              		var o=new Option('Nouveau tissu','tissus');
              		document.menu.objet.options[document.menu.objet.options.length]=o;
              		document.menu.action.value = "ajouter";
              	
                       } 
                       if (document.menu.mode.options[ind].value == 'table') 
                       {
                        document.menu.objet.options.length = 0; 
                        var o=new Option('Les séquences','sequences'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('Les alignements','alignements'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('Les résultats d alignements','resultats_alignements'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('Les differents types de sequences','types_sequences'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('Les primers','primers'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('Les résultats d analyses','resultats_analyses'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('Les differents types d analyses','types_analyses'); 
              	    document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('Les organismes repertoriés','individus'); 
              	  document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('Les differents tissus de prélèvement','tissus'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        document.menu.action.value = "visualiser"; 
                       } 
                       if (document.menu.mode.options[ind].value == 'requete') 
                       { 
                        document.menu.objet.options.length = 0; 
                        var o=new Option('Analyses faites pour un gène donné','ana_gene'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('Analyses faites pour un type d analyse donné','pri_type'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('analyses faites pour un primer donné','ana_pri'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('analyses faites pour une personne donnée','ana_per'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('analyses faites en fonction d une technique donnée','ana_tech'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        var o=new Option('Primers utilisés en fonction d une analyse donnée','pri_ana'); 
                        document.menu.objet.options[document.menu.objet.options.length]=o; 
                        document.menu.action.value = "rechercher"; 
                       } 
                       return; 
                      } 
              
              </script>
              </head> 
               
                   <hr> 
                          <form method="post" objet="<? echo $PHP_SELF; ?>" name="menu" enctype=multipart/form-data> 
                          <div align="center"><font size="2"><i><font size="2"><b>Menu déroulant</b></font><b><font size="2">::</font></b><font size="2"> 
                          sélectionnez ce que vous désirez faire:</font></i></font></div> 
                        
              	    <select name="mode" onChange="change_mode();"> 
                           
              	      <option value="formulaire" <?if($mode=="formulaire") echo "selected"; ?> >Formulaires</option> 
                            <option value="table"<?if($mode=="table") echo "selected"; ?>>Tables</option> 
                            <option value="requete" <?if($mode=="requete") echo "selected"; ?>>Requêtes</option> 
              	   </select> 
                           
              	<select name="objet" >
                           <option value="sequences">Nouvelle séquence</option>
                            <option value="alignements">Nouvel alignement</option>
                            <option value="primers">Nouveau primer</option>
                            <option value="resultats_analyses">Nouvelle analyse</option>
                            <option value="types_sequences">Nouveau type de sequence</option>
                            <option value="types_analyses">Nouveau type d'analyse</option>
              	      <option value="individus">Nouvel organisme</option>
              	      <option value="tissus">Nouveau tissu</option>
                          </select> 
                          <INPUT type="hidden" name ="action" value="ajouter"> 
                          <INPUT type="hidden" name="num_enr" value=""> 
                          <input type="submit" name="Submit" value="OK"> 
                          </form> 
                  <hr>
              </div> 
              


              Si tu trouve jt'en serai très reconnaissant
              0
              1. Contributeur
                Tu as bien gardé les :
                if(isset($_POST['mode']))
                  $mode = $_POST['mode']
                else $mode = "";
                
                if(isset($_POST['objet']))
                  $objet = $_POST['objet'];
                else $objet = "";
                
                <hr> 
                            <form method="post" objet="<? echo $PHP_SELF; ?>" name="menu" enctype=multipart/form-data> 
                            <div align="center"><font size="2"><i><font size="2"><b>Menu déroulant</b></font><b><font size="2">::</font></b><font size="2"> 
                            sélectionnez ce que vous désirez faire:</font></i></font></div> 
                          
                	    <select name="mode" onChange="change_mode();"> 
                             
                	      <option value="formulaire" <?if($mode=="formulaire") echo "selected"; ?> >Formulaires</option> 
                              <option value="table"<?if($mode=="table") echo "selected"; ?>>Tables</option> 
                              <option value="requete" <?if($mode=="requete") echo "selected"; ?>>Requêtes</option> 
                	   </select> 
                             
                	<select name="objet" >
                             <option value="sequences" <?if($objet=="sequences") echo "selected"; ?>>Nouvelle séquence</option>
                              <option value="alignements" <?if($objet=="alignements") echo "selected"; ?> >Nouvel alignement</option>
                              <option value="primers" <?if($objet=="primers") echo "selected"; ?> >Nouveau primer</option>
                              <option value="resultats_analyses"<?if($objet=="resultats_analyses") echo "selected"; ?>>Nouvelle analyse</option>
                              <option value="types_sequences"<?if($objet=="types_sequences") echo "selected"; ?>>Nouveau type de sequence</option>
                              <option value="types_analyses"<?if($objet=="types_analyses") echo "selected"; ?>>Nouveau type d'analyse</option>
                	      <option value="individus"<?if($objet=="individus") echo "selected"; ?>>Nouvel organisme</option>
                	      <option value="tissus"<?if($objet=="tissus") echo "selected"; ?>>Nouveau tissu</option>
                            </select> 
                            <INPUT type="hidden" name ="action" value="ajouter"> 
                            <INPUT type="hidden" name="num_enr" value=""> 
                            <input type="submit" name="Submit" value="OK"> 
                            </form> 
                    <hr>
                
                


                Voilà, ca devrait aller ca non ?
                0
            5. Non j'ai enlever le code avec le sif isset car ca marche sans et que sinon ca me faisait planter autre chose.

              Par contre maintenant ce fonctionne pour les options mais seulement pour les options du formulaire.

              Pas pour table et requete.....
              0
              1. Contributeur
                oui.. je vois pourquoi ca va pas. Tu n'a pas forcément les mêmes "sous menus" d'un mode à l'autre.
                Ce qu'il faudrait faire, ce n'est pas modifié la valeur 'selected' dans la partie php, mais plutot dans la fonction JS, en passant la valeur de l'objet choisi à la fonction (this.value), puis en accedant à la propriété 'selected' depuis la fonction JS comme ca par exemple :
                0
              2. Contributeur
                non en fait j'ai rien dit, oublie !
                Il faudrait plutot construire la seconde partie de ton formulaire en fonction de la selection du mode puisque tu n'a pas forcément les même proposition pour un mode et pour un autre. (je ne me trompe pas ? sinon c'est pas la peine de le faire)
                0
            6. Jnon tu te trompe pas

              mais peut tu etre un peu plus precis please
              0
              1. Contributeur
                Un truc comme ca :
                <?php
                
                if(isset($_POST['mode']))
                  $mode = $_POST['mode']
                else $mode = "";
                
                if(isset($_POST['objet']))
                  $objet = $_POST['objet'];
                else $objet = "";
                
                ?>
                
                <hr> 
                            <form method="post" objet="<? echo $PHP_SELF; ?>" name="menu" enctype=multipart/form-data> 
                            <div align="center"><font size="2"><i><font size="2"><b>Menu déroulant</b></font><b><font size="2">::</font></b><font size="2"> 
                            sélectionnez ce que vous désirez faire:</font></i></font></div> 
                          
                	    <select name="mode" onChange="change_mode();"> 
                             
                	      <option value="formulaire" <?if($mode=="formulaire") echo "selected"; ?> >Formulaires</option> 
                              <option value="table"<?if($mode=="table") echo "selected"; ?>>Tables</option> 
                              <option value="requete" <?if($mode=="requete") echo "selected"; ?>>Requêtes</option> 
                	   </select> 
                      
                <?php
                
                 if($mode=="table")
                    include "table_objet.php";
                 else if(mode=="requete")
                    include "requete_objet.php";
                 else
                    include "formulaire_objet.php";
                ?>
                


                Selon le mode semectionné tu appelle telle ou telle script qui écrit la fin de formulaire coorespondante :

                formulaire_objet.php :
                	<select name="objet" >
                             <option value="sequences" <?if($objet=="sequences") echo "selected"; ?>>Nouvelle séquence</option>
                              <option value="alignements" <?if($objet=="alignements") echo "selected"; ?> >Nouvel alignement</option>
                              <option value="primers" <?if($objet=="primers") echo "selected"; ?> >Nouveau primer</option>
                              <option value="resultats_analyses"<?if($objet=="resultats_analyses") echo "selected"; ?>>Nouvelle analyse</option>
                              <option value="types_sequences"<?if($objet=="types_sequences") echo "selected"; ?>>Nouveau type de sequence</option>
                              <option value="types_analyses"<?if($objet=="types_analyses") echo "selected"; ?>>Nouveau type d'analyse</option>
                	      <option value="individus"<?if($objet=="individus") echo "selected"; ?>>Nouvel organisme</option>
                	      <option value="tissus"<?if($objet=="tissus") echo "selected"; ?>>Nouveau tissu</option>
                            </select> 
                            <INPUT type="hidden" name ="action" value="ajouter"> 
                            <INPUT type="hidden" name="num_enr" value=""> 
                            <input type="submit" name="Submit" value="OK"> 
                            </form> 
                <hr>
                


                table_objet.php :
                	<select name="objet" >
                             <option value="sequences" <?if($objet=="sequences") echo "selected"; ?>>Nouvelle séquence</option>
                              <option value="alignements" <?if($objet=="alignements") echo "selected"; ?> >Nouvel alignement</option>
                              <option value="Les résultats d alignements" <?if($objet=="resultats_alignements") echo "selected";?> >resultats_alignements </option>
                              <option value="primers" <?if($objet=="primers") echo "selected"; ?> >Nouveau primer</option>
                              <option value="resultats_analyses"<?if($objet=="resultats_analyses") echo "selected"; ?>>Nouvelle analyse</option>
                              <option value="types_sequences"<?if($objet=="types_sequences") echo "selected"; ?>>Nouveau type de sequence</option>
                              <option value="types_analyses"<?if($objet=="types_analyses") echo "selected"; ?>>Nouveau type d'analyse</option>
                	      <option value="individus"<?if($objet=="individus") echo "selected"; ?>>Nouvel organisme</option>
                	      <option value="tissus"<?if($objet=="tissus") echo "selected"; ?>>Nouveau tissu</option>
                            </select> 
                            <INPUT type="hidden" name ="action" value="ajouter"> 
                            <INPUT type="hidden" name="num_enr" value=""> 
                            <input type="submit" name="Submit" value="OK"> 
                            </form> 
                <hr>
                
                


                et requete_objet.php :
                	<select name="objet" >
                             <option value="ana_gene" <?if($objet=="ana_gene") echo "selected"; ?>>Analyses faites pour un gène donné</option>
                              <option value="pri_type" <?if($objet=="pri_type") echo "selected"; ?> >Analyses faites pour un type d analyse donné</option>
                              <option value="ana_pri" <?if($objet=="ana_pri") echo "selected";?> >analyses faites pour un primer donné </option>
                              <option value="ana_per" <?if($objet=="ana_per") echo "selected"; ?> >analyses faites pour une personne donnée</option>
                              <option value="ana_tech"<?if($objet=="ana_tech") echo "selected"; ?>>analyses faites en fonction d une technique donnée</option>
                              <option value="pri_ana"<?if($objet=="pri_ana") echo "selected"; ?>>Primers utilisés en fonction d une analyse donnée</option>
                            </select> 
                            <INPUT type="hidden" name ="action" value="ajouter"> 
                            <INPUT type="hidden" name="num_enr" value=""> 
                            <input type="submit" name="Submit" value="OK"> 
                            </form> 
                <hr>
                


                Voilà, dit moi si tu pige pas un truc
                0
            7. Yaurai pas un moyen pour que tout le code reste sur une page??
              0
              1. Contributeur
                Bine sur que si mais ca revient exactement au même de toute facon, suffit de mettre le code des fichier la ou il y a les include, c'est tout.

                dit moi ce que ca fait quand ta finie les modifs

                ++
                0
            8. Ca marche!!!!!!!!!!!!!!!!!!!!!!!!

              TROP COOOOOLLLLLL

              merci pour ton aide

              ++
              0
              1. Contributeur
                rhaaaa ! enfin ca marche ! 58 post pour y arrivé !

                (n'oublie pas de cocher le post comme résolu)

                :)
                ++
                0
                1. bo travail kij, félicitations lili
                  0
                  1. Contributeur
                    C'était pourtant pas bien compliqué, mais le plus dur c'est souvent de comprendre le probleme et ensuite de se comprendre tout le long...

                    Bon sur ce bon week end Sam

                    ++
                    0
                    Précédent
                    • 1
                    • 2