Salut à toute la troupe,

J'ai un petit soucis avec un raffraichisement de tableau, le but est que quand je clique sur une checkbox appartenant au tableau, la ligne s'archive et le tableau se raffraichit en enlevant la ligne.

J'avais donc cherché à mettre des headers pour le cache, el tout marche impeccablement sous Ie mais sous firefox, l'action sur le tableau est faite mais le tableau ne se raffrachit pas toujours.

Voici une partie du code :

Cellule du tableau avec la checkbox ou se déroule l'action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<td><input type="checkbox" onclick="go_fournisseur('<?php echo $donnees['id_fournisseur']; ?>');reload_fournisseur('0')"/></td>
Partie archivage :
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
<?php
   header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
   header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
   header("Cache-Control: no-cache, must-revalidate");
   header("Pragma: no-cache"); 
   header('Content-type: text/html; charset=ISO-8859-1');
        
   include("../fonctions_communes/php/fonctions.php");
   //On se connecte à la base de données
   connection();
        
   $id_fournisseur = $_GET['id_fournisseur'];
                        
   //Sélection des données dans la table article ou l'id_article est pour l'article en question (Sert notamment à récupérer la valeur de "archive_article" pour la condition)
   $slct_fournisseur = mysql_query("SELECT archives_fournisseur FROM fournisseurs WHERE id_fournisseur='".$id_fournisseur."'");
   $donnees = mysql_fetch_array($slct_fournisseur);
   $archive = $donnees['archives_fournisseur'];
 
   if($archive == 0)
   {
      mysql_query("UPDATE fournisseurs SET archives_fournisseur='1' WHERE id_fournisseur='".$id_fournisseur."'") or die ("La requête de modification de la base de données <b>(mettre 0)</b> n'a pas été prise en compte");
   }
   else if($archive == 1)
   {
      mysql_query("UPDATE fournisseurs SET archives_fournisseur='0' WHERE id_fournisseur='".$id_fournisseur."'") or die ("La requête de modification de la base de données <b>(mettre 1)</b> n'a pas été prise en compte");
   }            
?>
Pour le tableau qui est raffraichit, c'est le même que celui ou j'ai les checkbox (logique ).

Pour ce qui est de l'Ajax :
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
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
}
 
/**
* PERMET DE FAIRE UN UPDATE SUR LA TABLE FOURNISSEUR AFIN DE POURVOIR LES ARCHIVER
*/
function go_fournisseur(id)
{
   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)
      {
         xhr.responseText;
      }
   }
   xhr.open("GET","archivage_fournisseur.php?id_fournisseur="+id,true);
   xhr.send(null);
}
 
/**
* PERMET DE RECHARGER LE TABLEAU DES FOURNISSEURS
*/
function reload_fournisseur(type)
{
   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)
      {
         document.getElementById("mondiv").innerHTML = xhr.responseText;
      }
   }
   xhr.open("GET","tableau_fournisseur.php?type="+type,true);
   xhr.send(null);
}
Si quelqu'un peut m'aider, j'ai déjà parcouru le forum en long et en large, et je pense que ca vient du cache de firefox, Ie nickel et Firefox pas nikel, en principe c'est le contraire lol