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 :
Voici tout d'abord le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <div id="filter_area"></div>
La ligne 17 est la suivante :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
Voici le code javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.getElementById('filter_area').innerHTML = resultat;
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 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); }
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 <?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; ?>
Merci d'avance pour votre aide.
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> </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 } ?>
beegees
Partager