RemoveChild et formulaire dynamique php [Résolu]

Messages postés
7
Date d'inscription
mercredi 9 janvier 2008
Statut
Membre
Dernière intervention
15 septembre 2009
- - Dernière réponse : tiquisrd
Messages postés
7
Date d'inscription
mercredi 9 janvier 2008
Statut
Membre
Dernière intervention
15 septembre 2009
- 9 août 2009 à 13:41
Bonjour,
essayant de faire un formulaire PHP dynamique, je suis confronté à un problème que je ne peux résoudre avec mes faibles connaissances...
Ce code qui permet d'ajouter une série de boutons radio fonctionne.
Cependant, si j'ajoute la première partie permettant de supprimer ce que contient le conteneur (un div avec id), et en particulier la ligne: partie0.removeChild(contenu0);, le reste ne s'affiche alors plus...
Quelqu'un voit-il où est l'erreur? Merci!!
Renan

Voici le code:
function ouvre1() {
//Effacement du champ
var partie0 = document.getElementById("contenu1");
var contenu0 = partie0.firstChild;

                partie0.removeChild(contenu0);

//creation des variables	
var l01 = document.createElement('table');
l01.setAttribute("width","100%");
var l02 = document.createElement('tr');
l02.setAttribute("valign","top");
var l03 = document.createElement('td');
l03.setAttribute("width","100");
var t04 = document.createTextNode("Vivez-vous avec:");
var l05 = document.createElement('td');
var l06 = document.createElement('table');
var l07 = document.createElement('tr');
var l08 = document.createElement('td');
var l09 = document.createElement('label');
var l10 = document.createElement('input');
l10.setAttribute("type","radio");
l10.setAttribute("name","enf19");
l10.setAttribute("value","1");
l10.setAttribute("id","enf19_0");
var t11 = document.createTextNode(" tous vos enfants");

//mise en forme
l09.appendChild(t11);
l09.insertBefore(l10,t11);
l08.appendChild(l09);
l07.appendChild(l08);
l06.appendChild(l07);
l05.appendChild(l06);
l03.appendChild(t04);
l02.appendChild(l05);
l02.insertBefore(l03,l05);
l01.appendChild(l02);
partie0.appendChild(l01);
   }
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
3
Merci
Bonjour,

__ l03.setAttribute("width","100");
"100px" "100%" ou ... mais pas "100" tout court

__ eviter les setAttribute
pour moi, ça alourdit
mais surtout, ça ne fonctionne pas de la
même manière avec tous les navigateurs
à l03.setAttribute("width","100");
je prèfère l03.width= "100px";

__ <table><tr><td>... ben non :
c'est <table> <tbody> <tr><td>...

__ un <table> dans un <table> dans un

vous ne vous compliquez pas un peu la vie ?

__ removeChild
donc le div contient au moins un élément,
sinon, ça ne va pas plaire

__ après, il faudrait contrôler
que les appendChild sont bien faits
dans le bon ordre, mais franchement avec les
noms que vous donnez aux variables, ce n'est
pas simple...

ch'tiot exemple ( simplifié, 1 seul table, 1 seul
bouton radio... vous adapterez et compléterez )



<script type ="text/javascript">
function ouvre1() 
{	var elm_div=document.getElementById("contenu1");

if ( elm_div.firstChild )
{	elm_div.removeChild(elm_div.firstChild);	}

var elm_table=document.createElement('table');
elm_table.width="100%";
var elm_tbody = document.createElement('tbody');
var elm_tr = document.createElement('tr');
elm_tr.valign="top";
var elm_td = document.createElement('td');
elm_td.width="100%";
var elm_radio = document.createElement('input');
elm_radio.type="radio";
elm_radio.name="enf19";
elm_radio.value="1";
elm_radio.id="enf19_0";

elm_td.appendChild(elm_radio);
elm_tr.appendChild(elm_td);
elm_tbody.appendChild(elm_tr);
elm_table.appendChild(elm_tbody);

elm_div.appendChild(elm_table);
  }
  
 ouvre1();
</script>



Cordialement [mon Site] [M'écrire] Bul

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Bul3
Messages postés
1731
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
1 décembre 2019
51
0
Merci
bonjour
en generale pour supprimer une node on fait d'abort reference a la node a supprimer et on se positionne par rapport au node parent
document.getElementById('lanodeasupprimer').parentNode

puis on supprime la node

.removeChild(document.getElementById('lanodeasupprimer'));

la ligne complete

document.getElementById('lanodeasupprimer').parentNode.removeChild(document.getElementById('lanodeasupprimer'));

par contre si ton div contient plusieurs elements il seront supprimé en meme temp que le div
Commenter la réponse de @karamel
Messages postés
7
Date d'inscription
mercredi 9 janvier 2008
Statut
Membre
Dernière intervention
15 septembre 2009
0
Merci
Merci!
Mais si je veux garder le div pour pouvoir le remplir juste après????
Commenter la réponse de tiquisrd
Messages postés
7
Date d'inscription
mercredi 9 janvier 2008
Statut
Membre
Dernière intervention
15 septembre 2009
0
Merci
Merci beaucoup pour ce cours-correction!
Tout marche à merveille!
... et je ne connaissais pas l'usage des tbody...!!!
Merci encore!
Renan
Commenter la réponse de tiquisrd