IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Mon code ne fonctionne pas sous IE7


Sujet :

AJAX

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 2
    Points
    2
    Par défaut [AJAX] Mon code ne fonctionne pas sous IE7
    Bonjour,

    J'ai recopié le script qui devrait fonctionner sous IE7 !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    function getXhr(){
                                    var xhr = null; 
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
                                    return xhr
    			}
     
    			/**
    			* Méthode qui sera appelée sur le click du bouton
    			*/
    			function go(){
    				var xhr = getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById("code").innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajax.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
     
    				p = document.getElementById('p').value;
     
    				sel = document.getElementById('theme');
    				code = sel.options[sel.selectedIndex].value;
    				xhr.overrideMimeType("text/html; charset=ISO-8859-1");
    				xhr.send("theme="+code+"&p="+p);
    			}

    Et bien ça ne fonctionne pas ! Ras le bol de IE mais bon, certains collègues l'utilisent encore ! Par contre c'est Top sous FF !
    Que dois je faire pour que ça fonctionne ? Apparemment, c'est dans la déclaration de la variable avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(window.XMLHttpRequest) // Firefox et autres
                       xhr = new XMLHttpRequest(); 
                    else if(window.ActiveXObject){ // Internet Explorer 
                       try {
                                xhr = new ActiveXObject("Msxml2.XMLHTTP");
                            } catch (e) {
                                xhr = new ActiveXObject("Microsoft.XMLHTTP");
                            }
                    }
    que ça foire !

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour et Bienvenue sur Developpez .

    Peut-on voir le code HTML de la page ?

    A+.

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Et bien ça ne fonctionne pas !
    Mouais... avec ce type de diagnostic, difficile de t'aider efficacement...

    Apparemment, c'est dans la déclaration de la variable avec
    Rien à voir, IE7 implémente en natif XMLHttpRequest, tu ne passes pas dans le else.

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Le code HTML ?
    dans ma page, j'appelle le script go() par un OnSelect.
    Par contre, je ne vois pas pourquoi déclarer le ActiveXObject dans le else puisque justement, ce else sert lorsque le navigateur ne reconnait pas la requete !
    A moins que je me trompe !

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 2
    Points
    2
    Par défaut Diagnostic
    Juste que dans la barre d'état de IE, j'ai un erreur de script.
    Je ne comprends pas plus car aà priori tous les développeurs utilisent ce script en déclaration de XObjet !

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Voici le script ajax.php qui est appelé

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    <? session_start() ; 
     
     $code= $_POST['theme'] ;
     
     
     if (isset($_POST['p'])) {$p= $_POST['p'] ; 
     
    include("session/connexion_bd.php") ;
     echo"<table width='100%' border='0' cellpadding='2' cellspacing='0' >
     
     
     
         <tr><td width='25'>N°</td><td width='350'>Enoncé</td><td width='120'>Question 1</td><td  width='120'>Question 2</td><td width='120'>Question 3</td><td width='120'>Question 4</td><td colspan='2'  >&nbsp;</td></tr>
     
     " ;
    $sql = "SELECT * FROM exercice WHERE theme='$code'  ORDER BY numero " ;
    $req = mysql_query($sql) or die('Erreur SQL !	"'.$sql.'"'.mysql_error());
    $j=0;
    while( $data= mysql_fetch_array($req) ) 
    { 
    $theme = $data['theme'] ;  $id = $data['id'] ; 
     
    if ( $data['numero'] == "100") { $numero="C" ;  } 
     
    if ( $data['numero'] == "200") { $numero="M" ;  } 
     
    else{ $numero = $data['numero'] ; }
     
     
     $texte = stripslashes(htmlentities($data['texte'])) ;  $q1 = $data['q1'] ;$r1 = $data['r1'] ;
      $q2 = $data['q2'] ;$r2 = $data['r2'] ;
       $q3 = $data['q3'] ;$r3 = $data['r3'] ;
        $q4 = $data['q4'] ;$r4 = $data['r4'] ; $url = $data['url_telechargement'] ;
     
     
     
     
     
     
    	if ($j%2==1) {$bg='#EEEEEE'; $cl='theme' ; } else { $bg='#DDDDDD'; $cl='theme2' ;}
    echo" <tr><td colspan='8'>
    <form name='form1' method='post' action='actions.php?a=5&p=$p' class='formulaire' enctype='multipart/form-data'>
    <table width='100%' border='0' cellpadding='0' cellspacing='0' >
    <tr bgcolor='$bg'>
    <input type='hidden' name='id' value='$id' />
        <td><input type='text' name='numero' value='$numero' size='3' class='$cl' /></td>";
     
    	  	if($url=='') {echo"<td><textarea name='texte' class='$cl'>$texte</textarea></td>" ; } else {echo"
    		
    	<td><strong>FICHIER :</strong> <input type='text' name='url' value='$url' size='20' class='$cl' /></td>" ; }
     
     
    	echo" <td><input type='text' name='q1' value='$q1' size='20' class='$cl' /><br>
    			 <input type='text' name='r1' value='$r1' size='20' class='$cl' /></td>
    			    <td><input type='text' name='q2' value='$q2' size='20' class='$cl' /><br>
    				<input type='text' name='r2' value='$r2' size='20' class='$cl' /></td>
    				 <td><input type='text' name='q3' value='$q3' size='20' class='$cl' /><br>
    				  <input type='text' name='r3' value='$r3' size='20' class='$cl' /></td>
    			   <td><input type='text' name='q4' value='$q4' size='20' class='$cl' /><br>
    			  <input type='text' name='r4' value='$r4' size='20' class='$cl' /></td>" ; 
    	if($url=='') {	 
     
     $sqlc = "SELECT * FROM themes WHERE code='$theme' "; 
      $reqc = mysql_query($sqlc) or die('Erreur SQL !<br>'.$sqlc.'<br>'.mysql_error());
     $datac= mysql_fetch_array($reqc) ; 
     $idc = $datac['id'] ; 	
     
    echo"<td><a href='pagevisu.php?id=$idc&th=$theme&e=$numero' target='_blank'><img src='images/oeil_visu.png' title='Visualiser le document' border='0' /></a></td>
    <td><input src='images/actualiser.png'  type='image' name='modif' title='modifier les champs' /></td>"; }
     
     else
     
     { echo"<td><a href='pagevisu.php?id=$idc&th=$theme&e=$numero' target='_blank'><img src='images/oeil_visu.png' title='Visualiser le document' border='0' /></a></td>
     <td><a href='telechargement/$theme/$url' target='_blank'><img src='images/oeil.gif' title='Visualiser le document' border='0' /></a></td>"; }
     
    echo"<td><a href='actions.php?a=6&p=$p&id=$id'><img src='images/poubelle.png' border='O' title='Supprimer le document' /></a></td> </tr></table></form></td></tr>" ; $j++ ; } 
    echo"</table>"; } 
     
    else { echo"<span class='pdf'>Choisir une prépa et une matière. Merci.</span>" ; }
     
     ?>
    et le script php qui remplace la div "code" par le fichier ajax
     
    <? 
     
    if (isset($prepa)) { 
     
    	      if( $prepa== "IDE2" )   {$sqla = "SELECT * FROM themes WHERE matiere='$matiere' AND prepa='IDE2' OR matiere='$matiere' AND prepa='AS'  "; }
     
      else  { $sqla = "SELECT * FROM themes WHERE matiere='$matiere' AND prepa='$prepa'  "; }
     
    $reqa = mysql_query($sqla) or die('Erreur SQL !	"'.$sqla.'"'.mysql_error());
     $na= mysql_fetch_array($reqa) ;
     
     if ($na==0)  { echo"<span class='pdf'>Créer un th&egrave;me. Merci.</span>" ; }  else   {
     
     
    ?> <form name='form1' method='post' action='actions.php?a=5&p=<? echo $_GET['p'] ; ?>' class='formulaire' enctype='multipart/form-data'>
    <table width="100%" border="0" cellpadding="2" cellspacing="0" >
      <tr>
      <td  colspan="2" align="right"></td>
     
        <td align="right"><strong>Choix du th&egrave;me</strong></td>
        <td colspan="6" align='left'>
        <input name="p" id="p" type="hidden" value="<? echo $_GET['p'] ; ?>" />
    	<select name="theme" id="theme" onchange="go()">
       <option value=''>selectionnez un th&egrave;me</option>
    	<?  $sql = "SELECT * FROM themes WHERE prepa= '$prepa' AND matiere ='$matiere'  " ;
    $req = mysql_query($sql) or die('Erreur SQL !	"'.$sql.'"'.mysql_error());
    while( $data= mysql_fetch_array($req) ) 
    { 
    $titre = $data['titre'] ; 
    $code = $data['code'] ;
     
    echo"<option value='$code'>$titre</option>" ; }?>
     </select>
    </td>
      </tr>
      <tr><td></td></tr>
    </table>
     </form>
    <div id="code"></div>

    J'espère que ça va vous inspirer !
    Merci

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Phil_D
    Et bien ça ne fonctionne pas !
    Citation Envoyé par Phil_D
    Juste que dans la barre d'état de IE, j'ai un erreur de script.
    Tu crois pas que ça pourrait être utile de savoir ce qui ne fonctionne pas et quelle est l'erreur affichée ?

  8. #8
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 2
    Points
    2
    Par défaut Type d'erreur
    En fait, lorsque je sélectionne une option dans mon select de la page gerer_doc.php, j'appèle le fichier ajax.php par la méthode POST grâce au script httprequest.js :

    Sous FF, le fichier ajax.php s'ouvre et la balise div ='code' est remplacée par le contenu du fichier ajax.php

    Sous IE, je fais la même action, mais le fichier ajax.php ne remplace pas la balise div ='code' et dans la barre d'état d'IE, il y a l'image d'erreur et Terminé. Rien de plus.

    J'espère avoir été clair dans mon explication. ???
    Merci

  9. #9
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Lorsque je mets une alert("IE") dans mon code, sous IE, l'alert apparait dans l'emplacement pour FF et l'alert apparait avec FF. Je ne comprends vraiment rien !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     
       var xhr = null;
       function getXhr(){
    	if(window.XMLHttpRequest)
    	{ // Firefox et autres
    	alert("FF") ;
    	xhr = new XMLHttpRequest(); 
    	}
    	else if(window.ActiveXObject)
    	{ // Internet Explorer 
    	alert("IE") ; 
    		try 
    		{
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		}
    			catch (e) 
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else 
    	{ // XMLHttpRequest non supporté par le navigateur 
    			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    			xhr = false; 
    	}
    	return xhr ;
    }
    Qui pourrait m'aider ? Merci beaucoup

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Cette fonction d'instanciation d'un xhr est correct, le problème n'est pas là. Ton code php va générer, pourras-tu nous montrer ce code HTML généré?

    A+.

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Phil_D
    Lorsque je mets une alert("IE") dans mon code, sous IE, l'alert apparait dans l'emplacement pour FF et l'alert apparait avec FF. Je ne comprends vraiment rien !
    Depuis la version 7, IE implémente nativement l'objet XMLHttpRequest. Donc à moins d'utiliser IE6, tu ne verras pas la bonne alerte.

  12. #12
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Voila le code du script ajax.php
    ce script ajax.php devrait se mettre à la place de la balise <div id="code"></div> dans un fichier gerer_doc.php. Ça marche très bien sous FF mais pas sous IE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    <? session_start() ; 
     
     $code= $_POST['theme'] ;
     
     
     if (isset($_POST['p'])) {$p= $_POST['p'] ; 
     
    include("session/connexion_bd.php") ;
     echo"<table width='100%' border='0' cellpadding='2' cellspacing='0' >
     
     
     
         <tr><td width='25'>N°</td><td width='350'>Enoncé</td><td width='120'>Question 1</td><td  width='120'>Question 2</td><td width='120'>Question 3</td><td width='120'>Question 4</td><td colspan='2'  >&nbsp;</td></tr>
     
     " ;
    $sql = "SELECT * FROM exercice WHERE theme='$code'  ORDER BY numero " ;
    $req = mysql_query($sql) or die('Erreur SQL !	"'.$sql.'"'.mysql_error());
    $j=0;
    while( $data= mysql_fetch_array($req) ) 
    { 
    $theme = $data['theme'] ;  $id = $data['id'] ; 
     
    if ( $data['numero'] == "100") { $numero="C" ;  } 
     
    if ( $data['numero'] == "200") { $numero="M" ;  } 
     
    else{ $numero = $data['numero'] ; }
     
     
     $texte = stripslashes(htmlentities($data['texte'])) ;  $q1 = $data['q1'] ;$r1 = $data['r1'] ;
      $q2 = $data['q2'] ;$r2 = $data['r2'] ;
       $q3 = $data['q3'] ;$r3 = $data['r3'] ;
        $q4 = $data['q4'] ;$r4 = $data['r4'] ; $url = $data['url_telechargement'] ;
     
     
     
     
     
     
    	if ($j%2==1) {$bg='#EEEEEE'; $cl='theme' ; } else { $bg='#DDDDDD'; $cl='theme2' ;}
    echo" <tr><td colspan='8'>
    <form name='form1' method='post' action='actions.php?a=5&p=$p' class='formulaire' enctype='multipart/form-data'>
    <table width='100%' border='0' cellpadding='0' cellspacing='0' >
    <tr bgcolor='$bg'>
    <input type='hidden' name='id' value='$id' />
        <td><input type='text' name='numero' value='$numero' size='3' class='$cl' /></td>";
     
    	  	if($url=='') {echo"<td><textarea name='texte' class='$cl'>$texte</textarea></td>" ; } else {echo"
     
    	<td><strong>FICHIER :</strong> <input type='text' name='url' value='$url' size='20' class='$cl' /></td>" ; }
     
     
    	echo" <td><input type='text' name='q1' value='$q1' size='20' class='$cl' /><br>
    			 <input type='text' name='r1' value='$r1' size='20' class='$cl' /></td>
    			    <td><input type='text' name='q2' value='$q2' size='20' class='$cl' /><br>
    				<input type='text' name='r2' value='$r2' size='20' class='$cl' /></td>
    				 <td><input type='text' name='q3' value='$q3' size='20' class='$cl' /><br>
    				  <input type='text' name='r3' value='$r3' size='20' class='$cl' /></td>
    			   <td><input type='text' name='q4' value='$q4' size='20' class='$cl' /><br>
    			  <input type='text' name='r4' value='$r4' size='20' class='$cl' /></td>" ; 
    	if($url=='') {	 
     
     $sqlc = "SELECT * FROM themes WHERE code='$theme' "; 
      $reqc = mysql_query($sqlc) or die('Erreur SQL !<br>'.$sqlc.'<br>'.mysql_error());
     $datac= mysql_fetch_array($reqc) ; 
     $idc = $datac['id'] ; 	
     
    echo"<td><a href='pagevisu.php?id=$idc&th=$theme&e=$numero' target='_blank'><img src='images/oeil_visu.png' title='Visualiser le document' border='0' /></a></td>
    <td><input src='images/actualiser.png'  type='image' name='modif' title='modifier les champs' /></td>"; }
     
     else
     
     { echo"<td><a href='pagevisu.php?id=$idc&th=$theme&e=$numero' target='_blank'><img src='images/oeil_visu.png' title='Visualiser le document' border='0' /></a></td>
     <td><a href='telechargement/$theme/$url' target='_blank'><img src='images/oeil.gif' title='Visualiser le document' border='0' /></a></td>"; }
     
    echo"<td><a href='actions.php?a=6&p=$p&id=$id'><img src='images/poubelle.png' border='O' title='Supprimer le document' /></a></td> </tr></table></form></td></tr>" ; $j++ ; } 
    echo"</table>"; } 
     
    else { echo"<span class='pdf'>Choisir une prépa et une matière. Merci.</span>" ; }
     
     ?>
    Voici me fichier gerer_doc.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <? 
     
    if (isset($prepa)) { 
     
              if( $prepa== "IDE2" )   {$sqla = "SELECT * FROM themes WHERE matiere='$matiere' AND prepa='IDE2' OR matiere='$matiere' AND prepa='AS'  "; }
     
      else  { $sqla = "SELECT * FROM themes WHERE matiere='$matiere' AND prepa='$prepa'  "; }
     
    $reqa = mysql_query($sqla) or die('Erreur SQL !    "'.$sqla.'"'.mysql_error());
     $na= mysql_fetch_array($reqa) ;
     
     if ($na==0)  { echo"<span class='pdf'>Créer un th&egrave;me. Merci.</span>" ; }  else   {
     
     
    ?> <form name='form1' method='post' action='actions.php?a=5&p=<? echo $_GET['p'] ; ?>' class='formulaire' enctype='multipart/form-data'>
    <table width="100%" border="0" cellpadding="2" cellspacing="0" >
      <tr>
      <td  colspan="2" align="right"></td>
     
        <td align="right"><strong>Choix du th&egrave;me</strong></td>
        <td colspan="6" align='left'>
        <input name="p" id="p" type="hidden" value="<? echo $_GET['p'] ; ?>" />
        <select name="theme" id="theme" onchange="go()">
       <option value=''>selectionnez un th&egrave;me</option>
        <?  $sql = "SELECT * FROM themes WHERE prepa= '$prepa' AND matiere ='$matiere'  " ;
    $req = mysql_query($sql) or die('Erreur SQL !    "'.$sql.'"'.mysql_error());
    while( $data= mysql_fetch_array($req) ) 
    { 
    $titre = $data['titre'] ; 
    $code = $data['code'] ;
     
    echo"<option value='$code'>$titre</option>" ; }?>
     </select>
    </td>
      </tr>
      <tr><td></td></tr>
    </table>
     </form>
    <div id="code"></div>
     
     
     
     
     
     
    <? } } else { echo"<span class='pdf'>Choisir une pr&eacute;pa et une mati&egrave;re. Merci.</span>" ; } ?>
     
     
     
     
     
     
     
    <script type="text/javascript">
    <!--
    var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1");
    //-->
    </script>
    et le fichier doc est appelé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
      <div id="TabbedPanels1" class="TabbedPanels">
              <ul class="TabbedPanelsTabGroup">
               <li class="TabbedPanelsTab" tabindex="0">Créer un th&egrave;me d'étude</li>
                <li class="TabbedPanelsTab" tabindex="0">Taper un texte</li>
                <li class="TabbedPanelsTab" tabindex="0">Insérer un texte pdf </li>
                <li class="TabbedPanelsTab" tabindex="0">Gérer les documents</li>
                 <li class="TabbedPanelsTab" tabindex="0">Gérer les liens</li>
              </ul>
        <div class="TabbedPanelsContentGroup">
       <div class="TabbedPanelsContent"><? include('theme_etude.php') ; ?></div>
          <div class="TabbedPanelsContent"><? include('taper_texte.php') ; ?></div>
          <div class="TabbedPanelsContent"><? include('insertion_fichier.php') ; ?></div>
          <div class="TabbedPanelsContent"><? include('gerer_doc.php') ; ?></div>
          <div class="TabbedPanelsContent"><? include('gerer_liens.php') ; ?></div>
        </div>
     
    </div>
    J'ai oublié, puisque l'implémentation est bonne peut être que cela vient de la suite. La voici. Elle complète le message ci dessus où tous les codes en jeu sont écrits.
    Merci encore...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
       var xhr = null;
       function getXhr(){
    	if(window.XMLHttpRequest)
    	{ // Firefox et autres
    		xhr = new XMLHttpRequest(); 
    	}
    	else if(window.ActiveXObject)
    	{ // Internet Explorer 
     
    		try 
    		{
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		}
    			catch (e) 
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else 
    	{ // XMLHttpRequest non supporté par le navigateur 
    			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    			xhr = false; 
    	}
    	return xhr ;
    }
    			/**
    			* Méthode qui sera appelée sur le click du bouton
    			*/
    			function go(){
    				var xhr = getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById("code").innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajax.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
     
    				p = document.getElementById('p').value;
     
    				sel = document.getElementById('theme');
    				code = sel.options[sel.selectedIndex].value;
    				xhr.overrideMimeType("text/html; charset=ISO-8859-1");
    				xhr.send("theme="+code+"&p="+p);
    			}
    Voilà, si quelqu'un me débrouille de cette affaire, chapeau !
    Merci.

  13. #13
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Comme j'ai dit plus haut, c'est le code html généré qu'on a besoin mais pas ce code html.
    Vire aussi la déclaration de la variable globale var xhr=null.
    if(xhr.readyState == 4 && xhr.status == 200)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status ==0))
    xhr.overrideMimeType("text/html; charset=ISO-8859-1");
    Encode tes fichiers en utf8 et vire ce bout de code. C'est plus prudent.

    A+.

  14. #14
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    en fait le html généré provient du script php ci dessous.
    ça génère un tableau et dans une colonne, un formulaire avec un tableau à l'intérieur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <? session_start() ; 
     
     $code= $_POST['theme'] ;
     
     
     if (isset($_POST['p'])) {$p= $_POST['p'] ; 
     
    include("session/connexion_bd.php") ;
     echo"<table width='100%' border='0' cellpadding='2' cellspacing='0' >
     
     
     
         <tr><td width='25'>N°</td><td width='350'>Enoncé</td><td width='120'>Question 1</td><td  width='120'>Question 2</td><td width='120'>Question 3</td><td width='120'>Question 4</td><td colspan='2'  >&nbsp;</td></tr>
     
     " ;
    $sql = "SELECT * FROM exercice WHERE theme='$code'  ORDER BY numero " ;
    $req = mysql_query($sql) or die('Erreur SQL !    "'.$sql.'"'.mysql_error());
    $j=0;
    while( $data= mysql_fetch_array($req) ) 
    { 
    $theme = $data['theme'] ;  $id = $data['id'] ; 
     
    if ( $data['numero'] == "100") { $numero="C" ;  } 
     
    if ( $data['numero'] == "200") { $numero="M" ;  } 
     
    else{ $numero = $data['numero'] ; }
     
     
     $texte = stripslashes(htmlentities($data['texte'])) ;  $q1 = $data['q1'] ;$r1 = $data['r1'] ;
      $q2 = $data['q2'] ;$r2 = $data['r2'] ;
       $q3 = $data['q3'] ;$r3 = $data['r3'] ;
        $q4 = $data['q4'] ;$r4 = $data['r4'] ; $url = $data['url_telechargement'] ;
     
     
     
     
     
     
        if ($j%2==1) {$bg='#EEEEEE'; $cl='theme' ; } else { $bg='#DDDDDD'; $cl='theme2' ;}
    echo" <tr><td colspan='8'>
    <form name='form1' method='post' action='actions.php?a=5&p=$p' class='formulaire' enctype='multipart/form-data'>
    <table width='100%' border='0' cellpadding='0' cellspacing='0' >
    <tr bgcolor='$bg'>
    <input type='hidden' name='id' value='$id' />
        <td><input type='text' name='numero' value='$numero' size='3' class='$cl' /></td>";
     
              if($url=='') {echo"<td><textarea name='texte' class='$cl'>$texte</textarea></td>" ; } else {echo"
     
        <td><strong>FICHIER :</strong> <input type='text' name='url' value='$url' size='20' class='$cl' /></td>" ; }
     
     
        echo" <td><input type='text' name='q1' value='$q1' size='20' class='$cl' /><br>
                 <input type='text' name='r1' value='$r1' size='20' class='$cl' /></td>
                    <td><input type='text' name='q2' value='$q2' size='20' class='$cl' /><br>
                    <input type='text' name='r2' value='$r2' size='20' class='$cl' /></td>
                     <td><input type='text' name='q3' value='$q3' size='20' class='$cl' /><br>
                      <input type='text' name='r3' value='$r3' size='20' class='$cl' /></td>
                   <td><input type='text' name='q4' value='$q4' size='20' class='$cl' /><br>
                  <input type='text' name='r4' value='$r4' size='20' class='$cl' /></td>" ; 
        if($url=='') {     
     
     $sqlc = "SELECT * FROM themes WHERE code='$theme' "; 
      $reqc = mysql_query($sqlc) or die('Erreur SQL !<br>'.$sqlc.'<br>'.mysql_error());
     $datac= mysql_fetch_array($reqc) ; 
     $idc = $datac['id'] ;     
     
    echo"<td><a href='pagevisu.php?id=$idc&th=$theme&e=$numero' target='_blank'><img src='images/oeil_visu.png' title='Visualiser le document' border='0' /></a></td>
    <td><input src='images/actualiser.png'  type='image' name='modif' title='modifier les champs' /></td>"; }
     
     else
     
     { echo"<td><a href='pagevisu.php?id=$idc&th=$theme&e=$numero' target='_blank'><img src='images/oeil_visu.png' title='Visualiser le document' border='0' /></a></td>
     <td><a href='telechargement/$theme/$url' target='_blank'><img src='images/oeil.gif' title='Visualiser le document' border='0' /></a></td>"; }
     
    echo"<td><a href='actions.php?a=6&p=$p&id=$id'><img src='images/poubelle.png' border='O' title='Supprimer le document' /></a></td> </tr></table></form></td></tr>" ; $j++ ; } 
    echo"</table>"; } 
     
    else { echo"<span class='pdf'>Choisir une prépa et une matière. Merci.</span>" ; }
     
     ?>
    J'ai modifié les instructions et j'ai fait ce que tu m'as dit mais toujours le même souci. Sous IE, j'ai une icône d'alerte ( un triangle jaune et point d'exclamation) avec Terminé à coté dans la barre d'état.
    je ne vois pas pourquoi !!
    désolé.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Justement peux tu cliquer ce triange erreur javascript
    et nous dire quelle numéro de ligne et quelle erreur

  16. #16
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Ah oui,
    Ligne 53
    caractère 5
    Erreur : Cet objet ne gère pas cette propriété ou cette méthode
    du fichier : index.php?p=1
    C'est une balise <body> ???

  17. #17
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 2
    Points
    2
    Par défaut Pas facile
    Oups, je crois que je me suis trompé de code !Je suis allé dans le code source et je vous l'ai recopié. C la ligne 53 caractère 5 qui coince. Mais pourquoi ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    <!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=iso-8859-2" />
    <title>Interface d'administration IFSI</title>
    <link rel="shortcut icon" href="../favicon.ico" />
     
    <link href="../style/main2.css" rel="stylesheet" type="text/css">
    <link href="../style/forum.css" rel="stylesheet" type="text/css">
    <link href="../style/theme.css" rel="stylesheet" type="text/css">
     
    <script src="ajaxrequest.js"></script>
    <script language="javascript" src="scripts/fonctions.js"></script>
    <script language="javascript">
    function change() {
    sel = document.getElementById('theme');
    choix = sel.options[sel.selectedIndex].value;
    location.href='?p=1&i='+ choix ;
    }
    </script>
     
    <link href="style/main.css" rel="stylesheet" type="text/css" />
    <script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
     
    <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
    <link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css">
     
    <link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
    <link href="SpryAssets/SpryTabbedPanels.css" rel="stylesheet" type="text/css" />
     
    <script type="text/javascript">
    <!--
    function MM_showHideLayers() { //v9.0
      var i,p,v,obj,args=MM_showHideLayers.arguments;
      for (i=0; i<(args.length-2); i+=3) 
      with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
        if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
        obj.visibility=v; }
    }
    //-->
    </script>
     
    </head>
     
    <body>
     
    <div id="conteneurglobal">
      <div id="banniere"><img src="images/banniere.png" /></div>
     
     
    <div id="menu">  
        <ul id="MenuBar1" class="MenuBarHorizontal">
            <li><a class="MenuBarItemSubmenu" href="#">Prépa AS</a>
              <ul>
     
            <li><a href='?p=5'>Biologie</a></li><li><a href='?p=6'>Culture générale</a></li><li><a href='?p=4'>Français</a></li><li><a href='?p=1'>Mathématiques</a></li><li><a href='?p=8'>Stages</a></li><li><a href='?p=7'>Textes législatifs</a></li>
     
     
     
     
     
     
              </ul>
            </li>
                  <li><a class="MenuBarItemSubmenu" href="#">Prépa IDE 1</a>
                <ul>
           <li><a href='?p=10'>Culture générale</a></li><li><a href='?p=9'>Français</a></li><li><a href='?p=2'>Mathématiques</a></li><li><a href='?p=12'>Stages</a></li><li><a href='?p=11'>Textes législatifs</a></li>            </ul>
            </li>
                <li><a class="MenuBarItemSubmenu" href="#">Prépa IDE 2 </a>
    		     <ul>
     
    			  <li><a href='?p=14'>Analyse de situation</a></li><li><a href='?p=13'>Français</a></li><li><a href='?p=3'>Mathématiques</a></li><li><a href='?p=15'>Textes législatifs</a></li>         
            </ul></li>
                <li><a class="MenuBarItemSubmenu" href="#">Gestion g&eacute;n&eacute;rale</a>
                <ul>
                <li><a href="?p=1002">Actualités</a></li>
                  <li><a href="?p=1003">Nouvel enseignant</a></li>
                  <li><a href="?p=1001">Nouvelle rubrique</a></li>
                  <li><a href="?p=1004">Qui se connecte ?</a></li>
                   <li><a href="../index.php" target="_blank">Vers le site</a></li>
     
                </ul>
            </li>
     
     
            <a href="session/deconnexion.php">Déconnexion</a>
     
        </ul>
        </div>
     
     
     
     
            <div id="titre_corps">
    Vraiment désolé, lorsqu'on est perdu, c'est difficile de savoir ce qui pourrait vous aider...

  18. #18
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Il semblerait que ce soit la ligne qu'andy.aime t'a suggéré d'enlever...
    Citation Envoyé par andry.aime
    Encode tes fichiers en utf8 et vire ce bout de code. C'est plus prudent.
    Au pire, remplace la ligne JS...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.overrideMimeType("text/html; charset=ISO-8859-1");
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(xhr.overrideMimeType)xhr.overrideMimeType("text/html; charset=ISO-8859-1");

  19. #19
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    J'ai bien changé comme me dit Eric2a mais ça ne fonctionne toujours pas sous IE ???

Discussions similaires

  1. [AJAX] mon code ne fonctionne pas avec IE mais bien avec FF
    Par beegees dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/01/2009, 14h59
  2. return confirm ne fonctionne pas sous IE7
    Par mona dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/05/2008, 21h49
  3. [AJAX] div qui ne disparaissent pas sous ie7
    Par starr dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/07/2007, 17h16
  4. [AJAX] Parsage XML ne fonctionne pas sous IE!
    Par webrider dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/03/2007, 19h50
  5. [MySQL] Mon code ne fonctionne pas correctement
    Par bebas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/02/2007, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo