Salut à tous,
je tourne en rond depuis quelques jours, je vous expose mon problème : j'essaie d'ajouter et supprimer des input 'text' de ma page web. Donc un champ par défaut, un bouton supprimer et un bouton ajouter.
Donc la j'en suis à "l'ajout de champs marche", et "la suppression marche, mais une seule fois". C'est ça le problème
Voici le html et les fonctions que j'utilise : (les borders servent uniquement à bien voir si c'est le bon champ qui est supprimé)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <script type = "text/javascript"> var nbrechamps = 1; </script>
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 echo "<tr><td align = 'left' valign = 'top'>Noms donnés à ce taxon : <span class = 'etoile'>*</span> : "; echo "<br /><span class = 'small'>(Un nom minimum)</span></td>"; echo "<td align = 'left' valign = 'top'>"; echo "<table cellspacing = '0' cellpadding = '0'><tr><td align = 'left' valign = 'top'>"; echo "<div id = 'divChamps'>"; echo "<input type = 'text' name = 'AjoutTaxon_type1' maxlength = '255' size = '50' />"; echo "</div>"; echo "</td><td align = 'left' valign = 'bottom' style = 'padding-bottom:3px;'>"; ?> <a id="boutonSuppr" href="#" onclick="supprime_champ('divChamps',nbrechamps,'AjoutTaxon_type',50,255,'taxon_ajout','boutonSuppr'); nbrechamps = nbrechamps - 1;"><img src="Images/IcoSuppr.gif" alt="Supprimer un champ de nommage" title="Supprimer un champ de nommage" /></a> <?php echo "</td></tr></table>"; ?><br /><a href = "#" onClick = "nbrechamps = nbrechamps + 1; cree_champ('divChamps',nbrechamps,'AjoutTaxon_type',50,255,'taxon_ajout','boutonSuppr');"><img src = "Images/Plus.gif" alt = "Ajouter un champ de nommage" title = "Ajouter un champ de nommage" /> Ajouter un champ</a> <?php echo "</td></tr>";
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 function supprime_champ(idDiv,idChamp,champNom,champSize,champMaxlength,nomForm,idSupprButton) { var search = '<br><br><input style="border: '+idChamp+'px solid black;" name="'+champNom+idChamp+'" size="'+champSize+'" maxlength="'+champMaxlength+'" type="text">'; var code = document.getElementById(idDiv).innerHTML; alert(search+"\n\n\n"+code); // On regarde si le code HTML du champ existe dans le div contenant les champs - si c'est le cas, on efface le code correspondant var pos = 0; pos = code.indexOf(search); if( pos != -1 ){ document.getElementById(idDiv).innerHTML = str_replace(search,'',code); } document.getElementById(idSupprButton).onclick = "nbrechamps=supprime_champ('"+idDiv+"',"+idChamp+",'"+champNom+"',"+champSize+","+champMaxlength+",'"+nomForm+"','"+idSupprButton+"')"; alert("Apres suppression, l'onclick du bouton est : \n\n"+document.getElementById(idSupprButton).onclick); }Voilou si vous avez une idée sur le problème, je suis toute ouïe !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function cree_champ(idDiv,newID,champNom,champSize,champMaxlength,nomForm,idSupprButton) { // Ajout dans le code de la div du code du champ à ajouter document.getElementById(idDiv).innerHTML += '<br /><br /><input style="border:'+newID+'px solid black;" name="'+champNom+newID+'" size="'+champSize+'" maxlength="'+champMaxlength+'" type="text"/>'; // Mise a jour du lien présent sur le bouton de suppression document.getElementById(idSupprButton).onclick = "supprime_champ('"+idDiv+"',"+newID+",'"+champNom+"',"+champSize+","+champMaxlength+","+nomForm+","+idSupprButton+");"; }
Partager