Ajax et firefox

cyril.net -  
 microbulles -
Bonjour,

Je suis débutant avec AJAX... Je fais sur un site perso un simulateur de plongée : http://microbulles.free.fr/Simulateur/Plongee.php
Voila mon problème, lorsque je fais un appel à ce code php en AJAX tous va bien avec IE mais je n'ai pas de réponse avec FF
<?php
header('Content-type: text/html; charset=iso-8859-1');
header('Cache-Control: no-cache');
// echo '<err>';
$profondeur = $_GET['profondeur'];
$duree = $_GET['duree'] * 60; // duree convertie en seconde
//ici les parametres pour la connexion
$host="sql.free.fr";
$base="*********";
$passe="********";
//on effectue la connexion
$link = mysql_connect("$host","$base","$passe") or die ("Echec de connexion à la base") ;
//Selection de la base de données qui porte le meme nom que votre login
$select_base=@mysql_selectdb("$base") or die ("Echec de selection de la base");
// Recherche de la profondeur
$sql = "SELECT MIN(Profondeur) As Profondeur FROM T_TABLE_PLONGEE WHERE Profondeur >= " . $profondeur;
$result = mysql_query($sql) or die("Query failed : " . $sql);
$line = mysql_fetch_assoc($result);
// Liberation des resultats
mysql_free_result($result);
$profondeurTable = $line["Profondeur"];
if ($profondeurTable == "") {
$err = "Profondeur hors table";
}
// Recherche de la duree
$sql = "SELECT MIN(Duree) AS Duree FROM T_TABLE_PLONGEE WHERE Duree >= SEC_TO_TIME(" . $duree . ") AND Profondeur = " . $profondeurTable ;
$result = mysql_query($sql) or die("Query failed : " . $sql);
$line = mysql_fetch_assoc($result);
$dureeTable = $line["Duree"];
// Liberation des resultats
mysql_free_result($result);
if ($dureeTable == "") {
$err = "Hors table";
}
$sql = "SELECT Palier3m, Palier6m, Palier9m, Palier12m, DTR, GroupePlongee
FROM T_TABLE_PLONGEE
WHERE Profondeur = " . $profondeurTable . " AND Duree = '" . $dureeTable . "'";
$result = mysql_query($sql) or die("Query failed : " . $sql);
$line = mysql_fetch_assoc($result);
// Liberation des resultats
mysql_free_result($result);
// Fermeture de la connexion
mysql_close($link);
echo $err . '-' . $profondeurTable . '-' . $dureeTable . '-' . $line["Palier3m"] . '-' .
$line["Palier6m"] . '-' . $line["Palier9m"] . '-' . $line["Palier12m"] .
'-' . $line["DTR"] . '-' . $line["GroupePlongee"];
?>


Sauf en mode débug ou ça marche aussi avec FF.
Le code ci dessous permet de faire appel a cette page :



function makeRequest(url) {
var httpRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
httpRequest = new XMLHttpRequest();
if (httpRequest.overrideMimeType) {
httpRequest.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!httpRequest) {
alert('Abandon :( Impossible de créer une instance XMLHTTP');
return false;
}
httpRequest.onreadystatechange = function() { alertContents(httpRequest); };
httpRequest.open('GET', url, false);
httpRequest.send(null);
}

function alertContents(httpRequest) {
if (httpRequest.readyState == 4) {
if (httpRequest.status == 200) {
var tmp = httpRequest.responseText.split("-");
if(typeof(tmp[1]) != "undefined") {
gERRTABLE = tmp[0];
gPROFONDEURTABLE = tmp[1];
gDUREETABLE = tmp[2];
gPALIERTABLE3M = tmp[3];
gPALIERTABLE6M = tmp[4];
gPALIERTABLE9M = tmp[5];
gPALIERTABLE12M = tmp[6];
gDTRTABLE = tmp[7];
gGPSTABLE = tmp[8];
}
} else {
alert('Un problème est survenu avec la requête.');
}
}
}


Petite spécificité : httpRequest.open('GET', url, false); le paramètre est volontairement mis à false.

J'ai l'impression que FF ne refait pas le requête (pb de mise en cache ?)

Je pense que la solution doit être trivial, mais moi je coince complètement...


Merci de votre aide.

Cyril
A voir également:

1 réponse

Alain42
 
Bonsoir,

attention:

En javascript, il faut fermer Firefox et le réouvrir pour être sur que tu charges bien la dernière version de ton fichier et pas le cache.

Ensuite, je ne vois pas ce que tu fais des variables dans la réponse Ajax:
gERRTABLE = tmp[0];
gPROFONDEURTABLE = tmp[1];
gDUREETABLE = tmp[2];
gPALIERTABLE3M = tmp[3];
gPALIERTABLE6M = tmp[4];
gPALIERTABLE9M = tmp[5];
gPALIERTABLE12M = tmp[6];
gDTRTABLE = tmp[7];
gGPSTABLE = tmp[8];

tu les écris dans ta page par quelle méthode ,

document.getElementById('id_a_ecrire').innerHTML ?
0
microbulles
 
Bonjour,

J'ai toujours le problème et je viens de voir que vous m'avez répondu merci.

Oui je reprends effectivement c'est variable avec document.getElementById('id_a_ecrire').innerHTML...

Cela a t il une importance ?

Merci

Cyril
0