Liste déroulante HELLLP !

Bonjour,

je souhaiterais créer une liste déroulante et lorsqu'on fait un choix dans cette liste, la résultat correspondant (page html) s'ouvre dans la même page en dessous de la liste dans la balise <div> que j'ai créé et appelé 'dateContenu' mais je n'y arrive pas.
Le résultat s'ouvre à la place de la page actuelle.

2 réponses

  1. Modérateur
    Bonjour
    Pourrais tu nous montrer ton code histoire qu'on essaye de comprendre ce que tu cherches a faire. ...

    0
    1. bonjour,
      voici mon code:
       <p><FORM><select name="ListeUrl" onChange="ChangeUrl(this.form)">
      
       <!--<optgroup label="2009">-->
              <option value="indic.php"> 2009</option>
              <option value="grp1-page2.php">2010</option>
              <option value="grp1-page3.php">2011</option>
              <option value="grp1-page4.php">2012</option>
      
      </select></FORM></p>
      
      // avec :
      
      <script language="JavaScript"> 
      function ChangeUrl(formulaire) 
         { 
         if (formulaire.ListeUrl.selectedIndex != 0) 
            { 
           var url ; 
           url = formulaire.ListeUrl.options[formulaire.ListeUrl.selectedIndex].value; 
           window.open(url,'_blank'); 
             } 
         } 
      </script> 
      

      merci de m'aider :)

      EDIT : Ajout des balises de code
      Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
      Explications disponibles ici :
      https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
      0
  2. window.open cela veut dire que tu ouvres une nouvelle page
    '_blank' cela veut dire que tu ouvres un nouvel onglet

    window.open(url,'_blank') te permet de mettre le contenu de ta variable "url" dans une nouvelle page + nouvel onglet.

    Si tu veux mettre les informations dans la div 'id=dateContenu' il faut le lui préciser en javascript.

    document.getElementById('dateContenu').html('url');
    ou alors
    document.getElementById('dateContenu').append('url');

    Je suis habitué à coder en jquery je ne suis pas sûr que .html() et .append() existent en JS normal donc je ne suis pas sûr que mon code convienne à ton cas, mais en tout cas je pense que c'est par là qu'il faut chercher :) .
    0
    1. Modérateur
      @Yuh12 : En pure JS ... .html() s'écrit : innerHTML
      Par contre... le code que tu lui donnes ne permet pas quoi qu'il en soit de faire ce qu'elle souhaite....
      là tel que tu l'as écrit... ça écrira le mot 'url' dans la div ...mais c'est tout

      Pour mettre DANS sa page le contenu de la page à laquelle fait référence l' url .... il faut :
      Soit utiliser une IFRAME soit passer par de l'ajax....
      0
    2. Alors en effet je suis désolé j'ai mis des guillemets à url, au temps pour moi, et effectivement ça n'écrira que du texte => Je parlais de sa variable url.
      Donc on oublie mon html('url') et on remplace par innerHTML=url

      Il donc suffit de remplacer la ligne
      window.open(url,'_blank');

      Par
      document.getElementById('dateContenu').innerHTML=url;


      Et j'ai testé ça fonctionne pas besoin d'ajax :)
      0