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 :
<td><input type="checkbox" onclick="go_fournisseur('<?php echo $donnees['id_fournisseur']; ?>');reload_fournisseur('0')"/></td>
Partie archivage :
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 :
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
Partager