RemoveChild et formulaire dynamique php

Résolu
tiquisrd Messages postés 7 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 15 septembre 2009 - 7 août 2009 à 21:15
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);
   }

4 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
8 août 2009 à 10:28
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
3
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
7 août 2009 à 22:29
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
0
tiquisrd Messages postés 7 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 15 septembre 2009
8 août 2009 à 07:45
Merci!
Mais si je veux garder le div pour pouvoir le remplir juste après????
0
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
Merci beaucoup pour ce cours-correction!
Tout marche à merveille!
... et je ne connaissais pas l'usage des tbody...!!!
Merci encore!
Renan
0
Rejoignez-nous