Probleme menu déroulant javascript

jesscolor Messages postés 5 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 9 août 2007 - 9 août 2007 à 15:34
the_wwt Messages postés 177 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 16 janvier 2009 - 9 août 2007 à 16:39
Bonjour,
j'ai voulu créer un moyen de choisir entre 2 options (bouton radio) et selon l'option choisi, le menu déroulant affiche des données différentes. Ce code marche très bien sous firefox mais sur IE, quand on clique sur un bouton radio, la liste déroulante est vide. Est-ce que qeulqu'un pourrait m'aider à résoudre ce problème, merci.

Voici le code:

<html>

<script type="text/javascript">

function changeForm(id,val) {
document.getElementById(id).innerHTML = opt[val];
}

function Envoi()
{
    var d = document;
    var erreurs="";

    // Couleur de texte des champs si erreur saisie utilisateur
    color_font_warn="#000";
    // Couleur de fond des champs si erreur saisie utilisateur
    color_form_warn="#CCC";
   
    champ = d.formtaux.nbre_revenu;
    if(champ.value == ""){
        erreurs+="<li>Le champ &laquo; Nombre de revenus &raquo; n'a pas été défini.";
        champ.style.backgroundColor = color_form_warn;
        champ.style.color = color_font_warn;
    }
    champ = d.formtaux.revenu;
    if(champ.value == ""){
        erreurs+="<li>Le champ &laquo; Vos revenus &raquo; n'a pas été défini.";
        champ.style.backgroundColor = color_form_warn;
        champ.style.color = color_font_warn;
    }
   
    if(erreurs == "") {
        return true;
    }
    else {
        d.getElementById("erreurs").style.display = "block";
        d.getElementById("liste-erreurs").innerHTML = erreurs;
        return false;
    }
}

</script>

<form action="" method="post" id="formtaux" name="formtaux"  onsubmit="return Envoi();">

&nbsp;1 revenu
&nbsp;2 revenus

<?php
             
include ("admin/connexion.php");
$res=mysql_query("SELECT DISTINCT revenu1 FROM calcul_taux");
$nb=mysql_num_rows($res);
               
echo '<script type="text/javascript">';
echo 'opt = new Array();';
echo 'opt["opt1"] = \'<option selected value=""></option>\';';
               
while ($raw=mysql_fetch_array($res))
                {
                  echo 'opt["opt1"] = opt["opt1"]+\'<option value="'.$raw['revenu1'].'">'.$raw['revenu1'].' &#8364;</option>\';';
                }

$res=mysql_query("SELECT DISTINCT revenu2 FROM calcul_taux");
$nb=mysql_num_rows($res);
   
echo 'opt["opt2"] = \'<option selected value=""></option>\';';
while ($raw=mysql_fetch_array($res))
                {
                echo 'opt["opt2"] = opt["opt2"]+ \'<option value="'.$raw['revenu2'].'">'.$raw['revenu2'].' &#8364;</option>\';';
                }
mysql_close();

echo '</script>';
             
?>
                         
<select id="revenu1" name="revenu">
<option selected value=""></option>

</select>

</form>

</html>

1 réponse

the_wwt Messages postés 177 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 16 janvier 2009 1
9 août 2007 à 16:39
Bonjour,
( On n'est sur un forum javascript --> mais que le javascript et l html, ie pas php, sic)
Sous internet explorer il faut absolument utiliser la classe Option pour ajouter des options dynamiquement:
function

changeForm(id,val)
{


varselect
=
document . getElementById(id);

while(
select.options.length
>
0)


select.options[select.options.length-
1]
=
null;

for(;
;
){


varmyOpt
=
new Option(
"text",
"value",
false,false);

select.options[select.length]
=
myOpt;

}}
0
Rejoignez-nous