PHP/JS Problème avec IE sur une valeur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP/JS Problème avec IE sur une valeur

Re: PHP/JS Problème avec IE sur une valeur

par Mercantos » 04 mars 2010, 21:34

Bonjour,

C'est bien du JS puisque c'est ta fonction en JS qui ne fonctionne pas.

document.ano.ano_sexe.value => ceci ne fonctionnera pas. Pour obtenir la valeur d'un select en JS de manière certaine tu dois faire plusieurs choses :

1) Comme dis plus haut, mettre une value à tes options. Je ne sais même pas ce que tu récupères comme valeur en validant le formulaire si tu ne fais pas ça. Une option à forcement une value, c'est pas discutable ;p

2) Met également des ID à tes éléments de formulaire, c'est bien plus pratique pour les manipuler en JS

3) Passe par les options pour avoir la valeur sélectionnée. A ma connaissance, pour ie un select n'a pas de value (ce qui dans le fond n'est pas faux même si ce n'est pas pratique).

Pour passer par les options, fais quelque chose de ce genre :

Code : Tout sélectionner

//Recupération du select var monSelect = document.getElementById('id_du_select'); var valeur = monSelect.options[monSelect.selectedIndex].value;
En français : tu récupères la valeur de l'option sélectionnée du select. Ca ça fonctionne pour tous les navigateurs.

Re: PHP/JS Problème avec IE sur une valeur

par apriou » 04 mars 2010, 18:57

Merci je vais tester ca

Le problème vient plutot du php que du JS pour ca que je l'ai mis la.

Re: PHP/JS Problème avec IE sur une valeur

par popallo » 02 mars 2010, 23:32

Salut,

Je ne pense pas que ce soit le bon forum pour le JS mais bon...
A mon avis, le problème sous IE vient du fait que, dans tes <options> tu n'as pas mis de value.
Du genre :

Code : Tout sélectionner

<td><select name="ano_sexe"> <option <?php if( strcmp($_REQUEST['ano_sexe'],'N/A') == 0 ) echo 'selected';? value="N/A"> >N/A</option> <option <?php if( strcmp($_REQUEST['ano_sexe'],'Féminin') == 0 ) echo 'selected';? value="Féminin"> >F&eacute;minin</option> <option <?php if( strcmp($_REQUEST['ano_sexe'],'Masculin') == 0 ) echo 'selected';? value="Masculin"> >Masculin</option> </select></td>
Je n'ai pas testé donc je ne sais pas si c'est vraiment la solution.

En tout cas, vive IE ! :twisted:

PHP/JS Problème avec IE sur une valeur

par apriou » 25 févr. 2010, 16:43

Bonjour

Dans un formulaire je remplis des données d'utilisateur.

lors de la vérification sur la qualité des données rentrées je n'ai pas de souci sous firefox, il détecte les erreurs et affiche le popup le cas échéant.

Par contre sous IE il ne me détecte pas les erreurs quand en donnée j'ai une liste de choix


C'est le formulaire qui va etre rempli :

Code : Tout sélectionner

<form action="inclure.php" method="get" onsubmit="return valider()" name="ano"> <table class="table_formulaire"> <tr class="impair"> <td width="150"><b>Nom (Nom de jeune-fille):</b><br /> <i><b>V&eacute;rification :</b></i></td> <td><input type="text" name="ano_nom" size="40" value="<?php echo htmlentities($_REQUEST['ano_nom']) ?>" autocomplete="off" /> <br /> <input type="password" name="ano_nom_verif" size="40" /></td> </tr> <tr class="pair"> <td width="150"><b>Pr&eacute;nom :</b><br /> <i><b>V&eacute;rification :</b></i></td> <td><input type="text" name="ano_prenom" size="40" value="<?php echo htmlentities($_REQUEST['ano_prenom']) ?>" autocomplete="off" /> <br /> <input type="password" name="ano_prenom_verif" size="40" /></td> </tr> <tr class="impair"> <td width="150"><b>Sexe :</b></td> <td><select name="ano_sexe"> <option <?php if( strcmp($_REQUEST['ano_sexe'],'N/A') == 0 ) echo 'selected';?> >N/A</option> <option <?php if( strcmp($_REQUEST['ano_sexe'],'Féminin') == 0 ) echo 'selected';?> >F&eacute;minin</option> <option <?php if( strcmp($_REQUEST['ano_sexe'],'Masculin') == 0 ) echo 'selected';?> >Masculin</option> </select></td> </tr> </table> <p></p> <div class="onglets"> <input type="hidden" name="verif_doublon" value="1" /> <input type="submit" onclick="promptquittant = false;" value="Valider" /> <input type="button" onclick="window.close(); return false;" value="Annuler" /> </div> </form>

Et voici le test de qualité.

Code : Tout sélectionner

<script type="text/javascript"> <!-- function valider() { if (document.ano.ano_nom.value == "") { alert("Le nom est obligatoire !"); return false; } if (document.ano.ano_nom.value != document.ano.ano_nom_verif.value ) { alert("Le nom et la v\u00E9rification aveugle ne sont pas identiques !\nIl doit y avoir une faute de frappe quelque part..."); return false; } if (document.ano.ano_prenom.value == "") { alert("Le pr\u00E9nom est obligatoire !"); return false; } if (document.ano.ano_prenom.value != document.ano.ano_prenom_verif.value ) { alert("Le pr\u00E9nom et la v\u00E9rification aveugle ne sont pas identiques !\nIl doit y avoir une faute de frappe quelque part..."); return false; } if (document.ano.ano_sexe.value == "N/A") { alert("Le sexe ne peut etre que f\u00E9minin ou masculin !"); return false; } return true; } promptquittant = true; --> </script>
Le souci intervient lors de la vérification du sexe. Sous IE le test ne s'effectue pas car la valeur de : document.ano.ano_sexe.value est vide.
Sous firefox il n'y a aucun problème mais je dois le rendre IE compatible.

Comment associer la valeur sélectionnée pour le test sous IE ?

Merci d'avance