Bonjour,

Je suis sous ie6 (taf oblige).
j'ai des difficultés pour adapter un code que j'ai trouvé dans la FAQ 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
function putFrame(){
var f    = document.createElement("iframe");
var d    = document.getElementById("theDiv");
 
with(f.style){
position= "absolute";
 width    = d.offsetWidth+"px";
  height= d.offsetHeight+"px";;
 top= d.offsetTop+"px";
  left= d.offsetLeft+"px";
   zIndex= "1";
}
 
document.body.appendChild(f);
}
Je n'ai jamais utilisé de iframe. Pouvez-vous m'aider à utiliser ce code correctement ? Pour le moment j'affiche le menu deroulant, il passe bien au 1er plan, mais le tableau avec les select dans la page à disparu donc je ne peux pas tester.

Je voudrais que mes menus déroulants passent au-dessus de mes select placés dans une div.

Mon code simplifié pour ce post :

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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<html>
<head>
<link rel="stylesheet" href="styles/menu.css" />
<link rel="stylesheet" href="styles/style.css" />
<script type="text/javascript">
function putFrame(){
var f    = document.createElement("iframe");
var d    = document.getElementById("mon_div");
 
with(f.style){
position= "absolute";
 width    = d.offsetWidth+"1210px";
  height= d.offsetHeight+"580px";;
 top= d.offsetTop+"290px";
  left= d.offsetLeft+"20px";
   zIndex= "1";
}
 
document.body.appendChild(f);
}
</script>
</head>
<body>
<?php include('menu/menu.php'); ?>
<div id="mon_div">
<iframe name="iframe">
<?php 
if (empty($_POST["ordre"])){$ordre=0;} else {$ordre=$_POST["ordre"];}
if (empty($_POST["sens"])){$sens='asc';} else {$sens=$_POST["sens"];}
 
// Réglage de la requete
$jour_sem=array('Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche');
$true_fields = array('Tous','liste1','liste2','liste3','liste4','liste5','liste6','liste7','liste8'); // Nom affiché en entête de colonne
$fields = array('id','liste1','liste2','liste3','liste4','liste5','liste6','liste7','liste8'); // Nom réel des champs dans la (les) table(s) avec lien table si besoin (ex : A.liste1)
$tables = array('liste1'); // Nom de la (les) table(s) avec alias si besoin ligne au dessus (ex : liste1 as A)
$jointure = ""; // pour la jointure dans le cas de plusieurs tables ou d'une clause particulière séparé par des AND ou OR (ex : A.id=B.id and A.id=C.id)
$prem_col_chk=true; // Première colonne en case à cocher (true ou false)
 
// création de la liste des champs pour la requete
for($i=0;$i<count($fields);$i++) {
  if ($i==0){$champs = $fields[$i];} else {$champs .= ",".$fields[$i];}
}
// Création de la liste des tables pour la requete
for($i=0;$i<count($tables);$i++) {
  if ($i==0){$table = $tables[$i];} else {$table .= ",".$tables[$i];}
}
// Ajout de la jointure eventuelle
if ($jointure != "") {$jointure = "where ".$jointure;}
// Récupération des paramètres du filtre et création de la clause where
$swhere="";
for($i=0;$i<count($fields);$i++) {
  if (($prem_col_chk == false && $i >= 0) || ($prem_col_chk == true && $i > 0)) {
    if (!isset($_POST["sel_".$fields[$i]])) {
      $sel_fields[$i]="Tous";
      //echo "empty<br>\n";
    } elseif ($_POST["sel_".$fields[$i]] == 'Tous') { 
      $sel_fields[$i]="Tous";
    } else {
      $sel_fields[$i]=$_POST["sel_".$fields[$i]];
      if ($swhere == "" && $jointure == "") {
        $swhere = " where $fields[$i]='$sel_fields[$i]'";
      } else {
        $swhere .= " and $fields[$i]='$sel_fields[$i]'";
      }
    }
  }
}
 
$swhere = str_replace("=''"," is null",$swhere);
 
$req1="select $champs from $table".$swhere;
if ($ordre != 0) {$sordre=" order by ".$fields[$ordre]." ".$sens;} else {$sordre=" order by site ".$sens;}
$req=$req1.$sordre;
 
$r = mysql_query($req) or die('Erreur lors de la lecture des données de la requete : '.mysql_error());
 
$numfields = mysql_num_fields($r);
$nb_enreg = mysql_num_rows($r);
 
 
echo "<form name='frmfiltre' id='frmfiltre' action='$self' method='post'>\n";
echo "<div name='div_chck' id=\"div_chck\">\n";
echo "<table border='0' class='sortable'><thead><tr>\n";
 
for($i=0;$i<$numfields;$i++) {
 
  if ($ordre == $i) {
    if ($sens == 'asc') {
      $ssens='desc';
      $im='asc';
    } elseif ($sens == 'desc') {
      $ssens='asc';
      $im='desc';
    } else {
      $ssens='asc';
      $im='desc';
    }
  } else {
    $ssens='asc';
    $im='head';
  }
 
  if (($prem_col_chk == false && $i >= 0) || ($prem_col_chk == true && $i > 0)) {
    echo "<th class='$im'><h3><a title=\"Regler l'ordre par $true_fields[$i]\" onclick=\"recharger($i,'$ssens')\">$true_fields[$i]</a></h3>";
    echo "<center><select name='sel_$fields[$i]' id='sel_$fields[$i]' ONCHANGE=\"recharger($ordre,'$sens')\">\n<option value='Tous'> Tous </option>\n";
    $req="select distinct $fields[$i] from sites order by $fields[$i] asc";
    $r2 = mysql_query($req) or die('Erreur lors de la lecture des données de la requete : '.mysql_error());
    while($l=mysql_fetch_array($r2)) {
		if ($i == 3) {
			if ($l[0] == -1) {
				echo "<option value='".$l[0]."'> </option>\n";
			} else {
				echo "<option value='".$l[0]."'>".$jour_sem[$l[0]]."</option>\n";
			}
		} else {
			echo "<option value='".$l[0]."'>".$l[0]."</option>\n";			
			}
    }
    echo "</select></center></td>\n";
  } else {
    echo "<th><h3><a title=\"Cocher les éléments dans la liste\">$true_fields[$i]</a></h3>";
    echo "<center><input type='checkbox' name='choix' id='choix' onclick=\"GereChkbox('2');\">";
  }
  echo "</th>\n";
}
echo "</tr></thead>\n";
 
if ($nb_enreg) {
  while($row = mysql_fetch_array($r)) {
    echo "<tr>\n";
    for($i=0;$i<$numfields;$i++) {
      if ($prem_col_chk == true && $i == 0) {
        echo "<td align='center'><input type='checkbox' name='chk_".$row[$i]."' id='chk_".$row[$i]."' value='".$row[$i]."'";
        if (isset($_POST["chk_".$row[$i]])=='on') {echo " checked";}
        echo "></td>";
      } else {
		if ($i == 3) {
			$col=$jour_sem[$row[$i]];
		} else {
			$col=$row[$i];
		}
        echo "<td>".$col."&nbsp;</td>\n";
      }
    }
    echo "</tr>\n";
  }
}
echo "<input type='hidden' name='ordre' id='ordre' value='$i'>";
echo "<input type='hidden' name='sens' id='sens' value='$ssens'>";
echo "</table>\n";
echo "</div>\n";
echo "</form>\n";
for($i=0;$i<$numfields;$i++) {
  if (($prem_col_chk == false && $i >= 0) || ($prem_col_chk == true && $i > 0)) {
    echo "<script language='javascript'>LSelection('sel_".$fields[$i]."',\"".$sel_fields[$i]."\");</script>\n";
  }
}
?>
<script type="text/javascript" src="script.js"></script>
</iframe>	
</div>
Je précise que mes select ne sont pas générés en javascript mais en PHP, les quelques fonctions javascript, que je n'ai pas misent ici, ne servent que pour l'indexation, le tri se faisant en PHP. (le tableu contient plus de 1000 enregistrements, donc pas question de le trier côté client lol)

Merci de votre aide