Problème AJAX et IE7

Résolu/Fermé
nicorad - 23 mai 2009 à 18:42
 nicorad - 23 mai 2009 à 18:45
Bonjour,

Voila, je suis en train de créer un CMS. Pour le faire, j'utilise de l'ajax. Sous firefox etc, tout marche nickel sauf sur... Internet Explorer, tiens donc... J'ai lu bcp de topic la dessus, et appliqué les conseils donnés, mais ca ne marche toujours pas...

Chose plus étrange, pour certaines pages, ça fonctionne nickel, et sur d'autre pas... Alors qu'avec Firefox et compagnie, ttes les pages fonctionne nickel...

Vous trouverez ci apres ma fonction ajax, un exemple qui ne marche pas, et un exemple que marche.

Voici ma fonction ajax:
function ajax(fichier)
{
	if(window.XMLHttpRequest) // FIREFOX
          xhr_object = new XMLHttpRequest();
		  
     else if(window.ActiveXObject) // IE
           try {
				xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
				xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		  
     else
          return(false);
		  
     xhr_object.open("GET", fichier, false);
     xhr_object.send(null);
     if(xhr_object.readyState == 4) return(xhr_object.responseText);
     else return(false);
}



Voici l'exemple qui ne marche pas
code js:
function selectGalerie(id_galerie){
	if(id_galerie !='selected'){
		galerie = ajax('afficheGalerie.php?id_galerie='+id_galerie);
		document.getElementById('galerie').innerHTML = galerie;
	}
}


code: html/php
<select onchange='selectGalerie(this.value)'>
                    <option selected="selected" value="selected">Choisir une galerie</option>
                    <?php
                    $sql="select id_galerie, galerie from galeries where coin_pecheur='1'";
                    $rs = mysql_query($sql) or die ("Erreur de requete : $sql");
                    while($row = mysql_fetch_array($rs)){
                        extract($row);
                        echo "<option value='" . $id_galerie . "'>";
                        echo $galerie;
                        echo "</option>";
                    }
                    ?>
        </select>


requete php (page afficheGalerie):
include('../includes/maconnexion.inc.php');
$sql = "select P.id_photo, P.photo, P.nom from photos P 
		inner join galerie_photo GP on (GP.id_photo=P.id_photo) 
		where GP.id_galerie=".$_GET['id_galerie'];
$rs = mysql_query($sql) or die ("erreur de requete: $sql");
while($row=mysql_fetch_array($rs)){
	extract($row);
	echo "<a href='../images/photos/".$photo."' rel='lightbox' title='" .$nom."' >
			<img src='../images/photos/thumb/".$photo."' width='100' alt='' /></a>";
}


Et voici, un exemple qui fonctionne
function js
function selectConcours(id_annee){
	concours = ajax('selectConcours.php?id_annee='+id_annee);
	document.getElementById('selectConcours').innerHTML = concours;
}


code html/php:
<ul>
				<?php
				$sql="select id_annee, annee from annees order by annee";
				$rs=mysql_query($sql) or die ("Erreur de requete:$sql");
				while($row=mysql_fetch_array($rs)){
					echo "<li><a href='javascript:void(0)' onclick='selectConcours(\"".$row['id_annee']."\")'>> Concours ".$row['annee']."</a></li>";
				}
				?>
                </ul>


requete php(page selectConcours)

include('../class/class.Identification.php');
	$identification = new Identification();
	$identification->verificationAcces('../');
include('../includes/maconnexion.inc.php');
$sql= "select concours, id_concours, date from concours where id_annee=" . $_GET['id_annee'] . " order by date";
$rs = mysql_query($sql) or die ("Erreur de requête : $sql");
echo "<table width='600px'>";
echo "<tr style='font-size:larger'><th>Concours</th><th>Editer</th><th>Supprimer</th><th>Résultats</th></tr>";
while($row = mysql_fetch_array($rs)){
	extract($row);
	echo "<tr><td>" . $concours . "</td><td align='center'><a href='editConcours.php?id_concours=".$id_concours."' >Editer</a></td><td align='center'><a href='' onclick='deleteConcours(\"".$id_concours."\");'>Supprimer</a></td><td align='center'><a href='resultats.php?id_concours=".$id_concours."&id_annee=" . $_GET['id_annee'] . "'>R&eacute;sultats</a></td></tr>";
}
echo "<tr><td><a href='add.php?id_annee=".$_GET['id_annee']."'>Ajouter un concours</a></td></tr>";
echo "<tr><td><a href='' onclick='deleteAnnee(\"".$_GET['id_annee']."\");'>Supprimer ann&eacute;e</a></td></tr>";
echo "</table>";



Voila, je ne comprend pas pourquoi, au niveau d'IE, le premier fonctionne, et pas le deuxième... alors que j'ai utilisé la meme fonction ajax()...

1 réponse

Excusez moi, pour le tt dernier code, je me suis trompé, c'est celui-ci
<?php
include('../includes/maconnexion.inc.php');
$sql = "select id_concours, concours from concours where id_annee=".$_GET['id_annee']." order by date";
$rs = mysql_query($sql) or die ("erreur de requete: $sql");
?>
<select onchange="afficheConcours(this.value);">
<option selected="selected" value="selected">Choisir un concours</option>
<?php
while($row=mysql_fetch_array($rs)){
	extract($row);
?>
	<option value='<?php print $id_concours;?>'><?php print $concours;?></option>
<?php
}
?>
</select>
0

Discussions similaires