Bonjour,
J'ai un tableau d'une 30aine de colone contenant des balises select.
Je me suis cr�� un un bouton qui me permet de dupliquer une ligne. Je l'ai fais avec DOM en javascript avec la fonction cloneNode.
Puis toujours avec j'ai renom� les attributs name des nouveaux select pour diff�rencier les champs avec la ligne qui a servi de copie. J'ai control� � l'aide de Firebug, les attributs sont bien renomm�.
Lorsque je submit mon formulaire, les champs nouvellement cr�� n'apparraissent pas dans print_r($_POST).
J'ai essay� les 2 m�thodes pour changer les attribut name avec :
- element.name = "jour_1";
et - element.setAttribute("name", "jour_1" );
Ou ai je faut� ?
Est ce que l'on peux reelement creer des elements d'un formulaire cot� client avec DOM en javascript pour ensuite pouvoir exploiter les informations cot� serveur ?
J'ai l'impression que non, car ce sont uniquement mes select cr�� cot� client qui ne sont pas envoy�s.
Voici ma fonction lorsque je clique sur mon bouton "Ajout Projet" qui est dans mon tableau :
//Chaque ligne est reference par un id "ligne" + ligne qui est une variable qui s'incremente � chaque ligne
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 function ajoutProjet(ligne) { var ligneACopier = document.getElementById("ligne" + ligne); var table = ligneACopier.parentNode; var ligneClone = ligneACopier.cloneNode(true); table.insertBefore(ligneClone, ligneACopier); //Traitement pour mettre à jour les attributs. var tousLesSelect = ligneClone.getElementsByTagName ("select"); //Recuperation du nombre de projet var nbProjet = document.getElementById("nbprojet"); var attri; //Mise à jour du nombre de projet nbProjet.value=parseInt(nbProjet.value)+1; //Mise à jour des attributs name for (var i = 0 ; i < tousLesSelect.length ; i++) { //is_ignorable : hack pour Firefox à cause des espaces if (is_ignorable (tousLesSelect[i]) == false && tousLesSelect[i].hasAttribute("name")) { //attri = tousLesSelect[i].getAttribute("name"); attri = tousLesSelect[i].name; attri = attri.substring(0,attri.lastIndexOf("_")); //tousLesSelect[i].setAttribute("name", attri+"_"+nbProjet.value); tousLesSelect[i].name = attri+"_"+nbProjet.value; } } //Mise à jour de l'attribut id du tr cloné ligneClone.id = "ligne"+nbProjet.value; }
Partager