Yop!
Oui, tu peux affecter une classe au TD lors de sa création.
Pour IE:
Pour les autres:Code:
1
2 td_objet.setAttribute("className","le_nom_de_ta_classe");
Code:
1
2 td_objet.setAttribute("class","le_nom_de_ta_classe");
Version imprimable
Yop!
Oui, tu peux affecter une classe au TD lors de sa création.
Pour IE:
Pour les autres:Code:
1
2 td_objet.setAttribute("className","le_nom_de_ta_classe");
Code:
1
2 td_objet.setAttribute("class","le_nom_de_ta_classe");
Salut merci ca marche pour les classes.
J'ai essyé de mettre en place ton systéme pour un truc un peut différent sachant que la quand j'appuie sur un lien on incrémente les ligne donc plus on clique plus y a de ligne, sauf que toute mes tentatives de mise ne place tombe a l'eau car deja l'increment marche pas du tous et en plus quand j'apuie sur le lien + il retourne toujours en haut de page c'est un peut embétant.
Si tu pouvais juste m'éguiller.
Merci a toi.Code:
1
2
3
4
5
6
7
8
9
10
11 <table> <tr> <td> <ul> <li><input type="text" name="synthese_mission" id="synthese_mission" /></li><a href="#" onMouseUp="addColResum()" >+</a> </ul> </td> </tr> </table> <table id="resume_calend"> </table>
Yop!
Pour le lien, essaie plutôt ceci:
Pour l'incrément: en donnant -1 comme paramètre des méthodes insertRow et insertCell, elles vont ajouter la ligne ou la cellule après ce qui existe déjà, donc de ce côté, il n'y a pas de changement à apporter à la fonction.Code:
1
2<a href="javascript:addColResum()" >+</a>
Il faut juste prévoir un champ caché pour passer le nombre de mois à la page d'action du formulaire si tu veux y reconstruire le tableau (encore qu'il soit possible de faire sans, mais c'est plus compliqué).
Donc, dans ton formulaire, tu ajoutes:
Code:
1
2 <input type=hidden name="mois">
Et ça devrait fonctionner...pour autant que le formualire soit le premier ou le seul de ta page.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 function addColResum() { var tobj = document.getElementById("matable"); var tr = tobj.insertRow(-1); var td0 = tr.insertCell(-1); td0.innerHTML = "moi" + i; var td1 = tr.insertCell(-1); td1.innerHTML = "<textarea name='moi" + i + "' ></textarea>"; document.forms[0].mois.value = tobj.rows.length; }
Re!
Haa, j'y suis allé trop vite. Il faut gérer le nombre de mois pour pouvoir donner un nom au textarea, donc:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 function addColResum() { var tobj = document.getElementById("matable"); i = tobj.rows.length + 1; var tr = tobj.insertRow(-1); var td0 = tr.insertCell(-1); td0.innerHTML = "moi" + i; var td1 = tr.insertCell(-1); td1.innerHTML = "<textarea name='moi" + i + "' ></textarea>"; document.forms[0].mois.value = i; }
je dois me tromper quelque part car ca ne me marche pas.
Merci a toi.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 <html> <head> <script type="text/javaScript"> function addColResum() { var tobj = document.getElementById("resume_calend"); i = tobj.rows.length + 1; var tr = tobj.insertRow(-1); var td1 = tr.insertCell(-1); td1.innerHTML = "<ul><li><input type='text' name='synthese_mission'"+ i + "id='synthese_mission' /></li></ul>"; document.forms[0].mois.value = i; } } </script> </head> <body> <label for="resumer">Résumé des missions (soyez précis et concis, ces point seront repris pour établir le contrat et la convention)</label> <table> <tr> <td> <ul> <li><input type="text" name="synthese_mission" id="synthese_mission" /></li><a href="javascript:addColResum()">+</a> </ul> </td> </tr> </table> <table id="resume_calend"> </table> <input type=hidden name="mois"> </body> </html>
Yop!
Il y avait en effet 2 choses qui clochaient:
- un parenthèse de trop dans le Javascript
- il n'y avait pas de balise FORM dans la page, donc la ligne
donnait une erreur.Code:
1
2 document.forms[0].mois.value = i;
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 <html> <head> <script type="text/javaScript"> function addColResum() { var tobj = document.getElementById("resume_calend"); i = tobj.rows.length + 1; var tr = tobj.insertRow(-1); var td1 = tr.insertCell(-1); td1.innerHTML = "<ul><li><input type='text' name='synthese_mission'"+ i + "id='synthese_mission' /></li></ul>"; document.forms[0].mois.value = i; } </script> </head> <body> <form> <label for="resumer">Résumé des missions (soyez précis et concis, ces point seront repris pour établir le contrat et la convention)</label> <table> <tr> <td> <ul> <li><input type="text" name="synthese_mission" id="synthese_mission" /></li><a href="javascript:addColResum()">+</a> </ul> </td> </tr> </table> <table id="resume_calend"> </table> <input type=hidden name="mois"> </form> </body> </html>
Ca marche nickel merci a toi.
Aussi pour le champ caché qu'on a mis, pour lui spécifier le nombre de ligne créé on réucpére comment cette valeur ?
Merci encore a toi.
Yop!
Je présume que quand tu parles de récupérer la valeur du champ caché, c'est le récupérer dans la page d'action du formulaire, donc en PHP?
Ce devrait être $_POST['mois']
non, je voulais dire que pour un champ hidden on doit y insérer une value pour qu'il me retourne une valeur $_POST
merciCode:<input type=hidden name="mois" value="Comment_on_met_le_nbre_de_ligne_ici">
Yop!
c'est la ligne suivante:
qui insère le nombre de ligne dans le champ hidden.Code:
1
2 document.forms[0].mois.value = i;
Quand je fais ca :
Dans quand je valide mon formulaire, la variable $_POST est vide alors que dans l'url plein de chose s'affiche dont le nombre de champ mis.Code:
1
2
3
4 <?php echo $_POST['mois']; ?>
Donc ca serait plus une méthode get mais alors le champ hidden ne servirais a rien ?
Yop!
Cela dépend de la methode utilisée pour envoyer le formulaire.
Soit GET, et dans ce cas les données sont envoyées dans l'URL (après le ?) et sont accessible dans la collection $_GET (je présume car je ne pratique plus PHP depuis quleques années), soit POST, et dans ce cas, le données sont accessibles dans la collection $_POST.
En résumé, la ligne qui définit ton formulaire dans la première page devrait ressembler à cela:
Code:
1
2 <form action="ta_seconde_page.php" method=post>
a ok je pensé pas qu'il prenait en compte la méthode utilisé par le form, il est fort ce javascript :D.
Bon bas voila je pense que j'en es fini merci beaucoup pour ton aide, a une prochaine fois bye et merci.