mé de rien ! ;)
ok di moi ce que ca donne!
Version imprimable
mé de rien ! ;)
ok di moi ce que ca donne!
J'ai fait quelques modifs dans le JS, puis dans le form dynamique, et c'est nickel ! maintenant je vais tester ce qui se passe après le submit...car j'ai dû virer les tableaux php name='name[]'...
Mais ça devrait le faire, je maitrise mieux php que JS !!!
Je te dis quoi...
ok ben c'est cool alors.
Ravi d'avoir pu t'aider!
oups ! si, une question, encore (en espérant pas trop te gonfler)...
peux-t-on mettre deux fonctions sur un évènement ?
style
onChange = 'calcul_form()' , 'mafonction(this.value)'
ou un truc du genre ?
Parce qu'en fait, sur un des check box, si il est cliqué (c'est le texte en couleur), je démasque un champ qui affiche la boite de sélection couleur (style devient display)...
Tu vois le truc ?
oui c'est :
Code:
1
2
3<?php echo "<a href='#' onChange = 'calcul_form();mafonction(this.value);'>
erreur de syntaxe ! mais je crois que je me suis mal exprimé, et surtout que ce que j'ai fait en JS tient pas trop la route :oops:
le input (qui est donc dans la boucle php affichant les checkbox)Code:
1
2
3
4
5
6
7
8
9
10
11
12 function mafonction(val){ if (val=='T_coul'){ document.getElementById("cadre").style.display = ''; } if (val!='T_coul'){ document.getElementById("cadre").style.display = 'none'; } }
et après la boucle while,Code:
1
2
3
4 <input type='checkbox' name='code$j' value='".$row["code"]."' <a href= '#' onClick = 'calcul_form()' ; 'mafonction(T_coul)'>
Code:
1
2
3
4
5 <tbody id='cadre' style='display:none'> //affichage pallette couleurs </tbody>
c'est :Citation:
Envoyé par renaud26
les cotes!!!Code:
1
2
3
4 <input type='checkbox' name='code$j' value='".$row["code"]."' <a href= '#' onClick = 'calcul_form();mafonction(T_coul)'>
allez...une petite dernière pour la route, et après, promis, je te laisse tranquille ! ;)
la fonction mafonction(val) - voir mess précédent - fonctionne bien. Quand le check coul_T est coché, le <tbody> se démasque et le user peut choisir sa couleur. Le petit ennui, c'est que si il change d'avis et décoche ce check, le champ choix couleur reste quand même affiché...Ce qui paraît normal puisque le param $row["code"] passé en paramètre de mafonction() a toujours la valeur T_coul. J'ai d'ailleurs dû bidouiller le code du checkbox:
Code:
1
2
3
4
5
6
7
8
9
10
11 <input type='checkbox' name='code$j' value='".$row["code"]."'"; if($row["code"] == "T_coul") { echo "<a href='#' onClick = 'calcul_form(); mafonction(this.value)'"; } else{ echo " onClick = 'calcul_form()'"; } echo ">";
T'as une idée ?
ok j'ai compris mais il y a plusieurs trucs qui me paraissent bizarre :
notamment ton <a href="#" dans ton input.
tu peux m'afficher ton code complet ?
je verrais tout de suite mieux.
merci
Effectivement, le <a href='#' ne sert à rien, je l'ai enlevé et ça fonctionne très bien. Comme tu me l'avais indiqué, j'ai cru qu'il fallait le rajouter
le code
Code:
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 function mafonction(val){ if (val=='T_coul'){ document.getElementById("cadre").style.display = ''; } if (val!='T_coul'){ document.getElementById("cadre").style.display = 'none'; } } ********** $i=5; $j=0; while($row = mysql_fetch_array($sql2)) { echo "<tr> <td width='60%' class='".$row["classe"]."'>".$row["nom"]." ($mot)</td> <td width='20%'><input type='checkbox' name='code$j' value='".$row["code"]."'"; if($row["code"] == "T_coul"){ echo " onClick = 'calcul_form(); mafonction(this.value)'"; } else{ echo " onClick = 'calcul_form()'"; } echo "></td> <td width='20%'>Prix: <input class='input' type='text' name='prix$i' size='3' value='".$row["prix"]."' readonly='' onChange = 'calcul_form()' > </td> </tr>"; $i++; $j++; } echo "<tbody id='cadre' style='display:none'><tr> <td>Choisissez votre couleur de texte</td>"; ?> <td><img src="images/color.gif" width="21" height="20" border="0" align="absmiddle" onClick="CP.Show('coul_texte', 'right');"></td> <?php echo "<td><input name='coul_texte' type='text' size='7' maxlength='7' class='input'> </td></tr></tbody>";
rajoute un paramètre "actuel" dans ta fonction js et tu fais :
puis dans ton js :Code:
1
2
3
4
5
6
7
8 if($row["code"] == "T_coul"){ echo " onClick = 'calcul_form(); mafonction(this.value,0)'"; } else{ echo " onClick = 'calcul_form()'; mafonction(this.value,1)"; }
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 function mafonction(val, actuel){ if (actuel == '0'){ if (val=='T_coul'){ document.getElementById("cadre").style.display = ''; } if (val!='T_coul'){ document.getElementById("cadre").style.display = 'none'; } } else { document.getElementById("cadre").style.display = 'none'; } }
a mon tour de m'excuser d'être lourd...
mais ça ne change rien, le <tbody> de se masque pas au décochage du checkbox...
ah bah oui je suis bete ta page n'est pas réactualisé donc le checkbox ne change pas.
essaie plutôt :
etCode:
1
2
3
4
5
6
7
8
9
10
11 function mafonction(val, actuel){ if (document.getElementById("cadre").style.display == 'none'){ if (val=='T_coul'){ document.getElementById("cadre").style.display = '';} if (val!='T_coul'){ document.getElementById("cadre").style.display = 'none';} else{ document.getElementById("cadre").style.display = 'none';} }
Code:
1
2
3
4
5
6
7
8 if($row["code"] == "T_coul"){ echo " onClick = 'calcul_form(); mafonction(this.value)'"; } else{ echo " onClick = 'calcul_form()'; mafonction(this.value)"; }
tu as supprimé la var actuel dans l'appel de la fonction ?
je comprends pas ces instructions qui sont les mêmes dans les 2 conditions
l'erreur javascrip est "objet attendu'. Même si je supprime le param actuel dans la fonction.Code:
1
2
3
4
5
6
7
8 if($row["code"] == "T_coul"){ echo " onClick = 'calcul_form(); mafonction(this.value)'"; } else{ echo " onClick = 'calcul_form()'; mafonction(this.value)"; }
C'était juste une accolade qui manquait dans la fonction !!!
bravo !
et vraiment, merci beaucoup.
Bonne soirée.
Ce long post mérite bien la mention résolu !