Code qui ne marche pas sur IE

Eléphanteau du PHP | 21 Messages

07 mai 2008, 12:45

Bonjour a tous,

Je comprend pas bien mon souci en fait.

Mon code fonctionne parfaitement sur Mozilla, mais sur IE7 pas moyen.

Dites moi si vous voyez l'erreur parce que là je ne voi absolument pas quoi faire.

Code : Tout sélectionner

function nbpage() { nbpages = document.getElementById('nbpages').value; if ((nbpages%2)==1) { document.getElementById('typefeuilles')[2].style.display="none"; if (document.getElementById('typefeuilles')[2].selected==true) { document.getElementById('typefeuilles')[2].selected=false; document.getElementById('typefeuilles')[1].selected=true; } } else { document.getElementById('typefeuilles')[2].style.display=""; } }
Merci par avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

07 mai 2008, 13:40

double clique sur le triangle jaune en bas à gauche de IE pour avoir le message d'erreur ;)
Les éléments auxquels tu fait référence ont-ils bien été définis dans le code avant l'appel à ta fonction ?

A mon avis, IE ne doit pas soir gérer la syntaxe getElementById('...')[...]
Essaye de la décomposer :

Code : Tout sélectionner

var elt = document.getElementById('typefeuilles'); elt[2].style.display="none";
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 19672 Messages

07 mai 2008, 13:42

Comme tu ne dis pas ce qui devrait arriver, on aura du mal à te dire comment y arriver et ton code n'est pas suffisamment explicite pour ça :-k

Un détail toutefois : tu pointes à priori sur un élément de formulaire avec "document.getElementById('nbpages').value;" : il serait préférable d'utiliser une syntaxe propre à la manipulation de données de formulaires avec : "document.forms.idDeTaBaliseForm.elements.nbpages.value;"
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 21 Messages

07 mai 2008, 14:29

En fait l'element est un SELECT qui réagi a un choix précédent.

Suivant le choix je veu que mon select n'affiche pas toute les options mais seulement une sur deux.

Sur Mozilla aucun souci mais sur IE ça ne marche pas du tout

Voici le code html qui va avec :

[php]
<tr>
<td class="right">Impression des feuilles</td>
<td class="left">
<?php
//tu parcours toutes les valeurs mémorisés
$rs=mysql_query("SELECT * FROM dev_modeimpression");
if ((mysql_num_rows($rs))!= 0)
{
//création du select avec le nom correspondant à la variable de session
echo("<select id=\"typefeuilles\">\n<option>Veuillez Choisir un Type d'impression</option>\n");
//là tu insère tes options
while ($row=mysql_fetch_array($rs))
{
?>
<option value="<? echo $row['LibModeImpression']; ?>" <? if($_SESSION['typefeuilles']==$row['LibModeImpression']){ echo("selected=\"selected\""); } if(isset($_SESSION['nbpages']) && (($_SESSION['nbpages'])%2==1) && ($row['LibModeImpression']!="Recto")){ echo("style=\"display:none\"");} else {echo("style=\"display:\"\"\"");}?>><? echo $row['LibModeImpression']; ?></option>
<?
}
echo("</select>");
}?>
</td>
</tr>
[/php]