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