Bonjour tout le monde,

J'ai créé au dessus de mon tableau un tableau qui contient des zones de textes.

Dès que je tape quelque chose dans une zone de texte, la liste se filtre.

ça fonctionne super bien avec Firefox mais ça ne fonctionne pas du tout avec IE 8.

Je dois normalement remplir cette div :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<div id="filter_area"></div>
Voici tout d'abord le message d'erreur :

Détails de l’erreur de la page Web

Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Horodateur : Sun, 10 May 2009 08:56:51 UTC



Message*: Unknown runtime error
Ligne*: 17
Caractère*: 3
Code*: 0
URI*: http://localhost/Scripts/Administrateur/AJAX/filtre.js
La ligne 17 est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
document.getElementById('filter_area').innerHTML = resultat;
Voici le code javascript :

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
function filtre(champ,valeur,table)
{
 
	//if(valeur = "")document.getElementById('filter_area').innerHTML = "";
	//alert(champ);
	//alert(valeur);
	//alert(table);
	xhr = getXhr();
	xhr.onreadystatechange = function(){
	//alert(xhr.readystade);
	//alert(xhr.status);
	if(xhr.readyState == 4 && xhr.status == 200)
	{
		resultat = xhr.responseText;
		//lebouton = lebouton + " tudiant(s)";
		//alert(resultat);
		document.getElementById('filter_area').innerHTML = resultat;
	}
}
 
	xhr.open("POST","Scripts/Administrateur/AJAX/filtre.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send("champ="+champ+"&valeur="+valeur+"&table="+table);
}
Le code PHP :

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
<?php
include('../../connexion.php');
 
$sql = "SELECT * FROM ".$_POST['table']." WHERE ".$_POST['champ']." LIKE '".$_POST['valeur']."%'";
//echo $sql;
$query_filtre = mysql_query($sql);
 
$nombre = mysql_num_rows($query_filtre);
 
$Tableau_Noms_Des_Champs = array();
 
for($j=0;$j<mysql_num_fields($query_filtre);$j++) 
{ 
   $Tableau_Noms_Des_Champs[] = mysql_field_name($query_filtre, $j); 
}
 
$i = 0;
$n = 0;
$retour = '<table border="15" style="border-color:#339900;border-style:solid;">'; 
 
while($row = mysql_fetch_array($query_filtre,MYSQL_ASSOC)) 
        {
                $i++;
                $retour.= '<tr><td align="center">'.$i.'</td>';
                foreach($row as $NomCol => $Valeur)
                {
                        if($NomCol != 'ID')$retour.= '<td><input name="new[' . $row['ID'] . '][' . $NomCol . ']" value="'.$Valeur.'"></td>';    
                }
                $retour.= '</tr>';
        }
 
 
 
 
$retour.='</table>';
echo $retour;
 
?>
et le code de la page appelante :

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<!--Si la variable de type get  une information ou si la variable de session LaTable  une donne alors on fait tout cela-->
 
<?php 
$_GET = array_map("mysql_real_escape_string", $_GET);
if((isset($_GET['select_Nom_Tables'])) OR (isset($_SESSION['LaTable']))){ ?>
	<table border="1" id="TableauUpdate">
	<?php
        
        if(isset($_GET['select_Nom_Tables'])) 
                {
                        $table = $_GET['select_Nom_Tables'];
                }
        else 
                {
                        $table = $_SESSION['LaTable'];
                }
                        $_SESSION['LaTable'] = $table;
        
        ?>
 
<?php
        $query = mysql_query("SELECT * FROM ".$table) or exit(mysql_error());
        $num_rows = mysql_num_rows($query) or exit(mysql_error());
        //echo($table);
        
        //echo $num_rows ." lignes dans la table " . $table."\n"; 
        
        $Tableau_Noms_Des_Champs = array();  
          
        for($j=0;$j<mysql_num_fields($query);$j++) 
        { 
           if(mysql_field_name($query, $j)!='ID')$Tableau_Noms_Des_Champs[] = mysql_field_name($query, $j); 
           //echo(mysql_field_name($query,$j));
        }
        //var_dump($Tableau_Noms_Des_Champs);
        
        ?>
<br /><br />
<table border="1">
<tr>
 
<?php 
        //++++++++++++++++++++++++affichage des noms de colonnes +++++++++++++++++++++++++++++++++
        for($i=0;$i<count($Tableau_Noms_Des_Champs);$i++)
                        {
                                ?>	 
					<td >
						<input type="text" id="<?php echo $Tableau_Noms_Des_Champs[$i]; ?>" 
						 onkeyup="filtre('<?php echo $Tableau_Noms_Des_Champs[$i] ?>',this.value,'<?php echo $_SESSION['LaTable'] ?>')" 
						 />
					</td>
				<?php 
                        }
        ?>
</tr>
<br /><br />
</table>
<table>				  
	<?php if ($num_rows > 0) 
        {?>
	<tr>
	<td>&nbsp;</td>
 
	</tr>
	<div id="filter_area"></div>
	<?php 
        $nligne = 0;
        $nbColonnes = 0;
        $i = 0;
        while($row = mysql_fetch_array($query,MYSQL_ASSOC)) 
        {
                $i++;
                echo '<tr><td align="center">'.$i.'</td>';
                foreach($row as $NomCol => $Valeur)
                {
                        //si le nom de la colonne vaut 'ID', je l'ignore afin de ne pas afficher l'ID
                        if($NomCol != 'ID')
                        {
                                echo '<td><input name="new[' . $row['ID'] . '][' . $NomCol . ']" value="'.$Valeur.'"></td>';
                        }       
                }
                //} !!!!!!!!!!!!!!!!!!!!!REMETTRE ICI LE IF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                echo '</tr>';
        }
        
        echo '</tr>';
        
        
        ?>
	<?php } 
if ($num_rows == 0) 
{  } ?>
	</table>
 
<?php } 
else 
{ 
?>
	<table border="1" id="TableauUpdate">
	<tr><td>Aucune table n'a t slectionne</td></tr>
	</table>
<?php 
} 
?>
Merci d'avance pour votre aide.

beegees