RemoveChild et formulaire dynamique php [Résolu]

tiquisrd 7 Messages postés mercredi 9 janvier 2008Date d'inscription 15 septembre 2009 Dernière intervention - 7 août 2009 à 21:15 - Dernière réponse : tiquisrd 7 Messages postés mercredi 9 janvier 2008Date d'inscription 15 septembre 2009 Dernière intervention
- 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 

Votre réponse

4 réponses

Meilleure réponse
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 8 août 2009 à 10:28
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

Merci Bul3 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de Bul3
@karamel 1661 Messages postés vendredi 9 mai 2008Date d'inscription 23 août 2018 Dernière intervention - 7 août 2009 à 22:29
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
tiquisrd 7 Messages postés mercredi 9 janvier 2008Date d'inscription 15 septembre 2009 Dernière intervention - 8 août 2009 à 07:45
0
Merci
Merci!
Mais si je veux garder le div pour pouvoir le remplir juste après????
Commenter la réponse de tiquisrd
tiquisrd 7 Messages postés mercredi 9 janvier 2008Date d'inscription 15 septembre 2009 Dernière intervention - 9 août 2009 à 13:41
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.