Problème AJAX et IE7
Résolu
nicorad
-
nicorad -
nicorad -
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:
Voici l'exemple qui ne marche pas
code js:
code: html/php
requete php (page afficheGalerie):
Et voici, un exemple qui fonctionne
function js
code html/php:
requete php(page selectConcours)
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()...
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é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é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>