Probleme menu déroulant javascript

Signaler
Messages postés
5
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
9 août 2007
-
Messages postés
177
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2009
-
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

Messages postés
177
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2009
1
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;

}}