g_bu | Sous firefox j'arrive pas à faire marcher mon code qui modifie mes case à cocher et mon truc de cascade...
bon... je vous montre mon code mais je doute que qqun aura le courage de le lire... voici la fonction qui affiche mes formulaire :
Code :
- function form($id_form, $langue) {
- $tableau = array("a", "b", "c", "d", "e", "f", "g", "h", "i",
- "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
- "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8",
- "9" );
- $valeurs_aleatoires = array_rand($tableau, 10);
- $name_form = "";
- foreach($valeurs_aleatoires as $i)
- {
- $name_form = $name_form . $tableau[$i];
- }
- include('Connections/conn.php');
- $query_Recordset_formulaire = sprintf("SELECT * FROM t_formulaire WHERE(for_lan_id = '$langue' AND for_id = '$id_form')" );
- $Recordset_formulaire = mysql_query($query_Recordset_formulaire, $conn) or die(mysql_error());
- $row_Recordset_formulaire = mysql_fetch_assoc($Recordset_formulaire);
- $totalRows_Recordset_formulaire = mysql_num_rows($Recordset_formulaire);
- $query_Recordset_for_act = sprintf("SELECT * FROM t_for_act WHERE for_id = '$id_form'" );
- $Recordset_for_act = mysql_query($query_Recordset_for_act, $conn) or die(mysql_error());
- $totalRows_Recordset_for_act = mysql_num_rows($Recordset_for_act);
- $formulaire = "<blockquote>";
- $formulaire .= "<form method='post' name='".$name_form."' action='result.php'>";
- $formulaire .= "<p id='NewCB'>";
- $formulaire .= "<b>".$row_Recordset_formulaire['for_titre']."</b>";
- $formulaire .= "<table border='0' cellspacing='0' cellpadding='0'>";
- $i=0;
- while($row_Recordset_for_act = mysql_fetch_assoc($Recordset_for_act)){
- $i++;
- $act_id = $row_Recordset_for_act['act_id'];
- $query_activite = mysql_query("SELECT * FROM t_activite WHERE act_id='$act_id' AND act_lan_id = $langue" );
- $row_query_activite = mysql_fetch_array($query_activite);
- $formulaire .= "<tr><td><label><input type='checkbox' name='id_act[]' value='".$row_query_activite['act_id']."' />".$row_query_activite['act_titre']."</label><br>";
- //recherche de sous activité
- $req_sous_activite = mysql_query("SELECT * FROM t_sous_activite WHERE acs_act_id = '$act_id' AND acs_lan_id = $langue" );
- $total_sous_activite = mysql_num_rows($req_sous_activite);
- if($total_sous_activite != 0){
- $formulaire .= "<div id='detail".$name_form.$i."' style='display:none;margin-left:25px'>";
- while($tab_sous_activite = mysql_fetch_array($req_sous_activite)){
- $nom_sous_activite = $tab_sous_activite['acs_titre'];
- $formulaire .= "<font color='#535353'>".$nom_sous_activite."</font><br>";
- }
- $formulaire .= "<br></div>";
- }
- $formulaire .= "</td><td valign='top'>";
- if($total_sous_activite != 0){
- $formulaire .= "<div id='plus".$name_form.$i."' style='display:block;margin-left:10px'><a href='#' onClick=\"detail".$name_form.$i.".style.display='block'; moins".$name_form.$i.".style.display='block'; plus".$name_form.$i.".style.display='none'\"><img src='images/images/plus.gif' border='0'></a></div><div><div id='moins".$name_form.$i."' style='display:none;margin-left:10px'><a href='#' onClick=\"detail".$name_form.$i.".style.display='none'; moins".$name_form.$i.".style.display='none'; plus".$name_form.$i.".style.display='block'\"><img src='images/images/minus.gif' border='0'></a></div>";
- }
- $formulaire .= "</td></tr>";
- }
- $formulaire .= "</table>";
- $formulaire .= "<table border='0' cellspacing='0' cellpadding='0'>
- <tr>
- <td width='3'><img src='images/submit1.gif' width='3' height='21'></td>
- <td background='images/submit2.gif' id='send'><a href='javascript:document.".$name_form.".submit();'> Recherchez votre spécialiste </a></td>
- <td width='3'><img src='images/submit3.gif' width='3' height='21'></td>
- </tr>
- </table>";
- $formulaire .= "</p>";
- $formulaire .= "</form>";
- $formulaire .= "</blockquote>";
- echo $formulaire;
- }
|
et voici mon code JS pour modifier l'affichage des checkbox :
Code :
- <script language="javascript">
- function chgCB(){
- ALL = document.getElementsByTagName('p');
- for (j=0;j < ALL.length;j++){
- CHKB= ALL[j].getElementsByTagName('input');
- for(i=0; i < CHKB.length; i++){
- if(CHKB[i].type == "checkbox" ){
- IMG = document.createElement('img');
- CHKB[i].parentNode.insertBefore(IMG, CHKB[i]);
- IMG.src = "nocheck.gif";
- if(CHKB[i].checked == true) IMG.src = "check.gif";
- if(CHKB[i].disabled == true) IMG.src = "nocheck.gif";
- else{ // Les comportements de changement d'état ne sont appliqués que si la checkbox est cliquable !
- CHKB[i].onchange = function(){
- IMG = this.parentNode.getElementsByTagName('img')[0];
- if(this.checked == true) IMG.src = 'check.gif'
- else IMG.src = 'nocheck.gif'
- }
- if(!window.sidebar){
- CHKB[i].parentNode.onclick = function(){
- CHK = this.getElementsByTagName('input')[0];
- CHK.checked = (CHK.checked == true) ? false : true;
- CHK.onchange()
- }
- }
- }
- CHKB[i].style.visibility = "hidden";
- CHKB[i].style.position = "absolute";
- }
- }
- }
- }
- window.onload = chgCB;
- </script>
|
Dès que j'ajoute mes calques pour mon espèce de menu à plusieurs niveaux, mes checkbox ne sont plus modifiée et mon "menu" ne fonctionne pas....... (dans firefox je précise... dans IE tous fonctionne parfaitement!!!) Message édité par g_bu le 01-02-2007 à 23:21:40
|