Problemme innerHTML sous IE

Résolu
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011 - 6 janv. 2009 à 13:14
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011 - 6 janv. 2009 à 23:42
Bonjour

Je suis perdu, j'ai une page php dans laquelle se trouve du JS pour verifié ce que l'utilisateur tape dans le formulaire, ça marche très bien sous FF, par contre ça plante sous IE7

Dans le code JavaScript


<hr size="2" width="100%" />


var pseudo = 

document
.getElementById('pseudo'); // Pointe vers une balise DIV
var NullMessage = "Ce champ ne peut rester vide";

//dans une fonction de vérif
pseudo.innerHTML = NullMessage; // l'erreur IE pointe sur cette ligne !



<hr size="2" width="100%" />


Dans le BODY


<hr size="2" width="100%" />

pseudo">

<?php
global
$_RESULT; echo $_RESULT['pseudo'];
?>








<hr size="2" width="100%" />


Comme dit ça marche sans problème sur FF mais IE me renvoie l'erreur suivante :
"Erreur d'execution inconnue" code "0"
Bien sûr le script est alors interrompue !

Pratique, alors avec l'ami Google j'ai trouver plein d'info comme quoi innerHTML ne serais pas reconnu officielement par le W3C, comme quoi il y'aurais des problème avec IE sous certainne application de ce procédé, bla bla bla
Et sur le site Microsoft il relate cette erreur, mais chez eux c'est quand on essaye cette methode sur une table, or moi c'est un pauvre div...
Bref j'ai vue beaucoup d'info, assez flouts qui ne resolvé pas mon problème, d'où l'interet de ce post...

A j'ai aussi du coup essayer dans un HTML vide en simplifiant et etrangement ça marche...


<hr size="2" width="100%" />

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>


<script type="text/javascript" language="javascript">


<!--   

    function merde()
    {
        var toto = document.getElementById('toto');
        toto.innerHTML = 'OK ça marche';
    }
-->
</script>

</head>

name="button1" onclick="merde()" value="Test !" />

</html>


<hr size="2" width="100%" />


Voilà, je ne pige rien, donc si quelqu'un peut m'aider... MERCI

Guillaume

10 réponses

cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
6 janv. 2009 à 23:42
C'est bon en fait je suis un gros boulet !!!

Mes "input" et mes "div" on les mêmes noms !!! C'est même un miracle que ça ai marché sur FF lol
Résolu !

Guillaume
3
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
6 janv. 2009 à 13:17
Ah pardon je me suis trompé, la ligne qui provoque l'erreur sous IE est la suivante :

pseudo.innerHTML = "Le pseudo saisie doit comporté au moins 6 caractères";

Guillaume
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
6 janv. 2009 à 13:18
Heu à savoir que c'est la premiere a être tester donc pour les autres ça serait la meme je pense ...

Guillaume
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
6 janv. 2009 à 13:38
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
6 janv. 2009 à 13:43
zut souci d'envoi !

>> et etrangement ça marche...
donc...
c'est qu'il y a une erreur dans l'autre script !
ce n'est pas étrange !
tant qu'aux bugs des navigateurs : ce ne sont
que des conneries ! il n'y a aucun bug dans
aucun navigateur ! c'est toujours celui qui
code qui se plante !

>>pseudo.innerHTML = NullMessage;
t'es sur ? IE commene à numéroter à 0
ce n'est pas la ligne suivante ?

en attendant :
•————————•——————————————————————————————————————————————————————————•
|Chrome | controler la page actuelle |
| | Options pour les développeurs |
| | Console Javascript |
•————————•——————————————————————————————————————————————————————————•
|FireFox |regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
| | et mieux, : télécharger FireBug |
•————————•——————————————————————————————————————————————————————————•
|Internet|activer le deboggage : Outils/options Internet/Avancés |
|Explorer| dans la liste, sous "Navigation" : décocher |
| | o Afficher une notification de chaque erreur de script |
| | o Désactiver le débogage de Scripts (Internet Explorer) |
| | et mieux, : télécharger le Debogger IE |
| | voir aussi : DebugBar et Companion JS |
•————————•——————————————————————————————————————————————————————————•
|K-Meleon|regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
•————————•——————————————————————————————————————————————————————————•
|Opera |regarder la "console d'erreurs" |
| | Outils / Avancé / Console d'erreurs |
•————————•——————————————————————————————————————————————————————————•
|Safari |regarder Debug / Show JavaScript Console |
| | ° modifier Fichier com.apple.Safari.plist situé dans le |
| | répertoire : Support:\Documents and Settings\utilisateur\|
| | Application Data\Apple Computer\Safari\Preferences\|
| | y ajouter <key>IncludeDebugMenu</key> |
| | <true/> |
•————————•——————————————————————————————————————————————————————————•

pour IE8, le debooggage est différent, mais comme
ce n'est pas encore une version officielle...

Cordialement.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
6 janv. 2009 à 13:51
je voulais dire ;o)
Navigateurs |Quelques Expplications |----
Chrome
, contrôler page actuelle / Options pour développeurs
/ Console Javascript, ----
FireFox
, Outils / Console d'erreurs
et mieux : télécharger FireBug, ----
Internet
Explorer
, activer le deboggage : Outils/options Internet/Avancés
dans la liste, sous "Navigation" : décocher
o Afficher une notification de chaque erreur de script
o Désactiver le débogage de Scripts (Internet Explorer)
et mieux : télécharger le Debogger IE
voir aussi : DebugBar et Companion JS, ----
K-Meleon
, Outils / Console d'erreurs, ----
Opera
, utils / Asole d'erreurs, ----
Safari
, Debug / Show JavaScript Console
° modifier Fichier com.apple.Safari.plist situé dans le
répertoire : Support:\Documents and Settings\utilisateur
\Application Data\Apple Computer\Safari\Preferences\
y ajouter <key>IncludeDebugMenu</key>
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
6 janv. 2009 à 14:19
Merci

Seulement Le deboggeur MS me renvoie la page sur Microsoft Script Editor de office qui lui ne contient pas de deboggeur
et DebugBar + Conpanion JS me renvoie la meme erreur qu'IE

Donc je suis toujours un peu paumé, je vais te faire parvenir le script complet de la page

Guillaume
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
6 janv. 2009 à 14:20
subscrite.php
<hr size="2" width="100%" /><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Inscription 2</title>
</head>

<script type="text/javascript" language="javascript">
<!--   
   
    function NotNullString(mode)
    {
        // Declarations des variables Javascript globales
        var ErrorCount=0;
        var NullMessage = "Ce champ ne peut rester vide";
       
        // Variables pour les SPAM de résultat JavaScript
        var pseudo =  document.getElementById('pseudo');
        var mot_de_passe =  document.getElementById('mot_de_passe');
        var retape_mot_de_passe =  document.getElementById('retape_mot_de_passe');
        var code_postal =  document.getElementById('code_postal');
        var email =  document.getElementById('email');

         //Vérification que les champ contiennent une valeur
        if (mode==0 || mode==1)
        {
            if (document.form1.pseudo.value == '')
            {
                pseudo.innerHTML = NullMessage;
                ErrorCount++;
            }
        else
        {
            if (document.form1.pseudo.value.length < 6)
            {
                pseudo.innerHTML = "Le pseudo saisie doit comporté au moins 6 caractères";
                ErrorCount++;
            }
            else
            {
                pseudo.innerHTML = '';}
            }
        }
       
        //-----------------------------------------------------

           
        if (mode==0 || mode==2)
        {
            if (document.form1.mot_de_passe.value == '')
            {
                mot_de_passe.innerHTML = NullMessage;
                ErrorCount++;
            }
        else
        {
            if (document.form1.mot_de_passe.value.length < 8)
            {
                mot_de_passe.innerHTML = 'Le mot_de_passe saisie doit comporté au moins 8 caractères';
                ErrorCount++;
            }
            else
            {
                mot_de_passe.innerHTML = '';}
            }
        }
                   

        //-----------------------------------------------------
           
        else if (mode==0 || mode==3)
        {
            if (document.form1.retape_mot_de_passe.value == '')
            {
                retape_mot_de_passe.innerHTML = NullMessage;
                ErrorCount++;
            }
            else if (document.form1.retape_mot_de_passe.value == document.form1.mot_de_passe.value)
            {
                retape_mot_de_passe.innerHTML = ""; // Correct, reserve au cas où
            }
            else
            {
                retape_mot_de_passe.innerHTML = "Inccorect";
                ErrorCount++;
            }
        }

        //-----------------------------------------------------
           
        if (mode==0 || mode==4)
        {
            if (document.form1.code_postal.value == '')
            {
                code_postal.innerHTML = NullMessage;
                ErrorCount++;
            }
            else
            {
                if (document.form1.code_postal.value.length < 5)
                {
                    code_postal.innerHTML = 'Le pseudo saisie doit comporté 5 chiffres'; // a voir pour les chiffres
                    ErrorCount++;
                }
                else{
                    code_postal.innerHTML = '';;
                }
            }
        }
       
        //-----------------------------------------------------
           
        if (mode==0 || mode==5)
        {
            if (document.form1.email.value == '')
            {
                email.innerHTML = NullMessage;
                ErrorCount++;
            }
            else
            {
                if (VerifMail(document.form1.email.value)==true)
                {
                    email.innerHTML = '';
                }
                else
                {
                    email.innerHTML = 'L\'adresse email est incorrectes';
                    ErrorCount++;
                }
            }
        }
       
        //-----------------------------------------------------
       
        if (mode==0);
        {
            if (document.form1.CGU.checked == true)
            {
                // Reserve
            }
            else
            {
                ErrorCount++;
            }
        }
           
        // Retour positive ou non pour la suite de la vérification par PHP avant validation totale
        if (ErrorCount > 0){return false;}else{return true;}
    }

    function VerifMail(adress)
    {
        var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]­{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
        if(reg.test(adress))
        {
            document.form1.StatutForPHP.value = "on";
            return(true);
        }
        else
        {
            return(false);
        }
    }

-->
</script>

<?php // Chargement des includes de formatage et de sécurité
    include('../scripts/php/string/format.php');
    include('../scripts/php/sql_commands/data_management.php');
?>

   
<?php // Récupération des données puis traitement avant enregistrement

    // Declaration de variable(s) globales
        $_RESULT = array('pseudo'=>'','mot_de_passe'=>'','sexe'=>'','date_naissance'=>'','code_postal','email'=>'','retape_mot_de_passe'=>'','code_postal'=>'','CGU'=>'');

   
    // Verification si la page est chargé ou rechargé
    //if (isset($_POST['form_valide'])){

        $ErrorCount=0;
        // Vérification des format string saisies, détéction des balises html
        if (isset($_POST['pseudo'])){
            if ($pseudo FormatStringNoHTML($_POST['pseudo']) false){$ErrorCount++;
            global $_RESULT; $_RESULT['pseudo'] = 'Le Pseudo que vous avez entré n\'est pas valide';}
            else{$_RESULT['pseudo'] = '';}}
           
        if (isset($_POST['mot_de_passe'])){
            if ($pseudo FormatStringNoHTML($_POST['mot_de_passe']) false){$ErrorCount++;
            global $_RESULT; $_RESULT['mot_de_passe'] = 'Le mot de passe que vous avez entré n\'est pas valide';}
            else{$_RESULT['mot_de_passe'] = '';}}
           
        if (isset($_POST['code_postal'])){
            if ($pseudo FormatStringNoHTML($_POST['code_postal']) false){$ErrorCount++;
            global $_RESULT; $_RESULT['code_postal'] = 'Le code potal que vous avez entré n\'est pas valide';}
            else{$_RESULT['code_postal'] = '';}}
   
        if (isset($_POST['email'])){
            if ($pseudo FormatStringNoHTML($_POST['email']) false){$ErrorCount++;
            global $_RESULT; $_RESULT['email'] = 'L\'adresse email que vous avez entré n\'est pas valide';}
            else{$_RESULT['email'] = '';}}
           
        if (isset($_POST['CGU'])){

            global $_RESULT; $_RESULT['CGU'] = ' checked="checked" ';}

        // PHP peut-il démarrer l'enregistrement ???
        if (isset($_POST['StatutForPHP']))
        {

            if ($_POST['StatutForPHP'] == "on")
            {
                // Lancement de la fonction d'enregistrement SQL
                if ($ErrorCount==0)
                {
                    if (CheckDispoPseudo($_POST['pseudo'])==true)
                    {
                        SubscriteUser($_POST['pseudo'],$_POST['mot_de_passe'],$_POST['sexe'],$_POST['jour_naissance'],
                        $_POST['mois_naissance'],$_POST['annee_naissance'],$_POST['code_postal'],$_POST['email']);
                        // ########### Placer ici le code pour aller a la page suivante !
                    }
                    else
                    {
                        global $_RESULT; $_RESULT['pseudo'] = 'Désolé, mais ce pseuo existe déjà, choisissez en un autre';
                    }
                }
                else
                {
                    // s'il y'a une ou plusieurs erreurs
                }
            }
        }

   

?>

<form name="form1" action="subscrite.php" method="post" onsubmit="return NotNullString(0)">
   

     

   

          ----

        &nbsp;,
        Mon pseudonyme :,
        "/>,
        &nbsp;,
        &nbsp;<?php global $_RESULT; echo $_RESULT['pseudo'];?>,
     
      ----

        &nbsp;,
        Mot de passe :,
        "/>,
        &nbsp;,
        &nbsp;<?php global $_RESULT; echo $_RESULT['mot_de_passe'];?>,
     
      ----

        &nbsp;,
        Retaper le mot de passe :,
        "/>,
        &nbsp;,
        &nbsp;<?php global $_RESULT; echo $_RESULT['retape_mot_de_passe'];?>,
     
      ----

        &nbsp;,
        Sexe :,
          <select name="sexe" id="sexe" value="<?php if (isset($_POST['sexe'])){echo $_POST['sexe'];}?>">
        <option selected="selected" >un homme</option><option>une femme</option></select>,
        &nbsp;,
        <?php global $_RESULT; echo $_RESULT['sexe'];?>,
     
      ----

        &nbsp;,
        Date de naissance,
        <select name="jour_naissance" id="jour_naissance" value="<?php if (isset($_POST['jour_naissance'])){echo $_POST['jour_naissance'];}?>">
          <option selected="selected" ><?php for ($i=1; $i <= 31-1; $i++){if (strlen($i)==1){echo '0'.$i.'</option><option>';}else{echo $i.'</option><option>';}}echo $i.'</option>';?>
        </select>
          /
          <select name="mois_naissance" id="mois_naissance" value="<?php if (isset($_POST['mois_naissance'])){echo $_POST['mois_naissance'];}?>">
            <option selected="selected" ><?php for ($i=1; $i <= 12-1; $i++){if (strlen($i)==1){echo '0'.$i.'</option><option>';}else{echo $i.'</option><option>';}}echo $i.'</option>';?>
          </select>
          /
          <select name="annee_naissance" id="annee_naissance" value="<?php if (isset($_POST['annee_naissance'])){echo $_POST['annee_naissance'];}?>">
            <option selected="selected" ><?php for ($i=(date('Y')-18); $i >= (date('Y')-118); $i--){echo $i.'</option><option>';}echo (date('Y')-118).'</option>';?>
          </select>,
        &nbsp;,
        <?php global $_RESULT; echo $_RESULT['date_naissance'];?>,
     
      ----

        &nbsp;,
        Code postal :,
        "/>,
        &nbsp;,
        <?php global $_RESULT; echo $_RESULT['code_postal'];?>,
     
      ----

        &nbsp;,
        email :,
        "/>,
        &nbsp;,
        &nbsp;<?php global $_RESULT; echo $_RESULT['email'];?>,
     
      ----

        &nbsp;,
        &nbsp;,
     
      ----

        &nbsp;,
        />
         
        Je certifie être majeur(e) et avoir lu et accepté les CGU ainsi que la politique sur la vie privée de Stras-Rencontres et des services décrits.,
     
     
      ----

        &nbsp;,
        &nbsp;,
     
      ----

        &nbsp;,
        &nbsp;,

               
        ,
     
   

 

   

 

</form>
    
&nbsp;

 

&nbsp;

</html>
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
6 janv. 2009 à 14:21
data_management.php
<hr size="2" width="100%" /><?php

// Ajoute un utilisateur avec les données d'inscription
    function SubscriteUser($pseudo,$mot_de_passe,$sexe,$jour_naissance,$mois_naissance,$annee_naissance,$code_postal,$email){

        // Connexion à la base
            $link = mysql_connect("localhost", "root", "");
            mysql_select_db("stras_rencontres", $link);

            $mysql_query = "INSERT INTO users (pseudo,mot_de_passe,sexe,jour_naissance,mois_naissance,annee_naissance,code_postal,email)
            VALUES ('".$pseudo."','".$mot_de_passe."','".$sexe."','".$jour_naissance."','".$mois_naissance."','".$annee_naissance."','".$code_postal."','".$email."')";
            mysql_query($mysql_query);

    mysql_close($link);
    }   
   
// Fonction de vérification de l'existance du pseudo
    function CheckDispoPseudo($pseudo)
    {
        // Connexion à la base
            $link = mysql_connect("localhost", "root", "");
            mysql_select_db("stras_rencontres", $link);
   
        // Verifier que le pseudo existe
       
        $mysql_query = "SELECT pseudo FROM users WHERE pseudo='".$pseudo."'";
                      //SELECT pseudo FROM users WHERE pseudo='paul'
        $return = mysql_query($mysql_query);
        $return = mysql_fetch_array($return);
        if ($return[0]=='')
        {
            return true;
        }
        else
        {
            return false;
        }   
    mysql_close($link);
    }
?>
0
cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011
6 janv. 2009 à 14:22
PS je sait qu'il y'a des trucs que je peut enlever en PHP, mais c'est encore pas fini et je sait que ce n'a pas de rapport avec mon problème ...

Guillaume
0
Rejoignez-nous