Lien d'une liste deroulante

Résolu
Bonjour,

je viens de creer une liste de choix avec des liens et je voudrais que les liens ouvrent des pages dans un cadre (ifram) nommé I1 comment dois je faire car là ca ne fonctionne pas ?

dans <head> et </head>

<SCRIPT>
<!--
function Lien() { 
i = document.Choix.Liste.selectedIndex; 
if (i == 0) return; 
url = document.Choix.Liste.options[i].value;
parent.location.href = url; 
} 
// -->
</SCRIPT>


dans <body> et </body>

<form name="Choix">
   <select size="1" name="Liste" onChange="Lien()">
      <option selected>Rubrique</option>
      <option value="http://www.mon.lien" target="I1">rubrique1</option>
      <option value="http://www.mon.lien" target="I1">rubrique2</option>
      <option value="http://www.mon.lien" target="I1">rubrique3</option>
   </select>
</form>


MERCI d'avance
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. J'ai pas remis ton code, regarde mieu.

    <SCRIPT>
    function Lien(obj) 
    { 
        i = obj.selectedIndex; 
        if (i == 0)
            return false;
        
        url = obj.options[i].value;
        document.getElementById('I1').src = url; 
    }
    </SCRIPT>
    
    <?php
    
    if(isset($_POST['id']))
    {
    	include ('oSelectSql.php');
    	
    	$rq = 'SELECT `id_carte`, `lib_carte`, `Link` FROM `carte` WHERE carte.id_theme = '.$_POST['id'];
    	$result = mysql_query($rq) or die(mysql_error());
    	$sdt = mysql_fetch_array($result);
    	
    	$i = 0;
    	if (mysql_num_rows($result) > 0)
    	{
    		echo '<select size="1" name="carte" width="100%" class="liste_themes" onclick="document.getElementById(\'energize\').value = 0, document.getElementById(\'tarifz­e\').value = 0, document.getElementById(\'secteurze\').value = 0" onblur="document.getElementById(\'compteur\').responseText = ""' onchange="Lien(this)" onkeyup="iLanceLoZaFair(\'id=\' + this.value,\'mIlireLoZaffair3.php\', \'POST\', \'contenu2\')">';
    		echo '<option value="-1">Choisir</option>';
    		while ($dt = mysql_fetch_row($result))
    		{
    			echo '<option value="'.utf8_encode($dt[0]).'">'.utf8_encode($dt[1]).'</option>';
    		}
    		echo '</select>';
    	}
    	else
    	{
    		echo utf8_encode("Pas de sous catégories disponible");
    	}
    }
    
    ?>
    <iframe id="I1"></iframe>
    1. <?php
      
      if(isset($_POST['id']))
      {
      	include ('oSelectSql.php');
      	
      	$rq = 'SELECT `id_carte`, `lib_carte`, `Link` FROM `carte` WHERE carte.id_theme = '.$_POST['id'];
      	$result = mysql_query($rq) or die(mysql_error());
      	$sdt = mysql_fetch_array($result);
      	
      	$i = 0;
      	if (mysql_num_rows($result) > 0)
      	{
      		echo '<select size="1" name="carte" width="100%" class="liste_themes" onclick="document.getElementById(\'energize\').value = 0, document.getElementById(\'tarifz­e\').value = 0, document.getElementById(\'secteurze\').value = 0" onblur="document.getElementById(\'compteur\').responseText = ""' onchange="lien(this)" onkeyup="iLanceLoZaFair(\'id=\' + this.value,\'mIlireLoZaffair3.php\', \'POST\', \'contenu2\')">';
      		echo '<option value="-1">Choisir</option>';
      		while ($dt = mysql_fetch_row($result))
      		{
      			echo '<option value="'.utf8_encode($dt[0]).'">'.utf8_encode($dt[1]).'</option>';
      		}
      		echo '</select>';
      	}
      	else
      	{
      		echo utf8_encode("Pas de sous catégories disponible");
      	}
      }
      
      ?> 
      1. slt tiller j'ai vu que tu as remis mon code cela signifie peut etre que tu as besoin d'eclaircissement je reste a ta disposition pour d'eventuel question merci
      2. @bemscobonjour au fait j'ai toujours besoin d'aide donc si quelqu'un a la solution a mon probleme je suis entierement en attente merci
    2. <SCRIPT>
      function Lien(obj) 
      { 
          i = obj.selectedIndex; 
          if (i == 0)
              return false;
          
          url = obj.options[i].value;
          document.getElementById('I1').src = url; 
      }
      </SCRIPT>
      
      <form name="Choix">
         <select size="1" name="Liste" onChange="Lien(this)">
            <option selected>Rubrique</option>
            <option value="http://www.mon.lien">rubrique1</option>
            <option value="http://www.mon.lien">rubrique2</option>
            <option value="http://www.mon.lien">rubrique3</option>
         </select>
      </form>
      
      <iframe id="I1"></iframe>
      1. SLt tiller

        moi j'ai le meme probleme mais la difference est que mes listes deroulantes sont obtenu a partir d'une base de données et je ne sais pas comment relier la selection a l'ouverture de ma page

        fonction:

        function Lien(obj)
        {
        i = obj.selectedIndex;
        if (i == 0)
        return false;

        url = obj.options[i].value;
        document.getElementById('I1').src = url;
        }

        code php de la liste deroulante:

        <?php

        header('Content-type: text') ; // on déclare ce qui va être afficher
        // test des POST emis
        if(isset($_POST['id']))
        {
        include ("oSelectSql.php"); // selection a la base de donnée

        // declaration de la requete de remplissage des données

        $rq="SELECT id_carte,lib_carte,Link FROM carte where carte.id_theme = ".$_POST['id'];

        $result= mysql_query ($rq) or die(mysql_error()."\n".$rq);
        $sdt = mysql_fetch_array($result);

        $i=0;
        if (mysql_num_rows($result)>0)
        {
        echo "<select size='1' name='carte' width='100%' class='liste_themes' option
        OnClick=\"document.getElementById('energize').value=0,document.getElementById('tarifze').value=0,document.getElementById('secteurze').value=0\"
        onBlur=\"document.getElementById('compteur').responseText = '';\"
        OnChange=\'lien(this)';\"
        OnKeyUp=\"iLanceLoZaFair('id='+this.value,'mIlireLoZaffair3.php', 'POST','contenu2');\">";

        // remplissage de la liste deroulante

        echo "<option value='-1'>Choisir</option>";
        }
        else
        {
        echo utf8_encode("Pas de sous catégories disponible");
        }
        while ($dt=mysql_fetch_row($result))
        {
        echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[1])."</option><br>";
        }
        echo "</select>";

        }

        ?>

        si possible dite moi ce qui ne va pas dans mon code car je n'arrive pas a relier ma fonction a mon code
        merci d'avance