Supprimer un div par son id.

Mammouth du PHP | 702 Messages

06 juin 2012, 09:55

Bonjour ,j'ai créé plusieurs fonctions qui me permettent par des boutons de créer des divs:

voici la fonction en question:

[javascript]var counter = 0;
var limit = 5;
function addparticulier(divName){
if (counter == limit) {
alert("Vous avez atteint la limite de" + counter + " débiteurs");
}
else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "<p><label for='qualite'>Qualité</label><input type='text' name='debiteur["+counter+"][qualite]'></p><p><label for='nom'>Nom</label><input type='text' name='debiteur["+counter+"][nom]'></p><p><label for='prenom'>Prénom</label><input type='text' name='debiteur["+counter+"][prenom]'></p><p><label for='date_naissance'>Date de naissance</label><input type='text' name='debiteur["+counter+"][date_naissance]'></p><p><label for='lieue_naissance'>Lieue de naissance</label><input type='text' name='debiteur["+counter+"][lieue_naissance]'></p><p><label for='profession'>Profession</label><input type='text' name='debiteur["+counter+"][profession]'></p><p><label for='adresse'>Adresse</label><input type='text' name='debiteur["+counter+"][adresse]'></p><p><label for='adresse2'>Suite</label><input type='text' name='debiteur["+counter+"][adresse2]'></p><p><label for='code_postal'>Code Postal</label><input type='text' name='debiteur["+counter+"][code_postal]'></p><p><label for='ville'>Ville</label><input type='text' name='debiteur["+counter+"][ville]'></p><p><label for='tel'>Téléphone domicile</label><input type='text' name='debiteur["+counter+"][tel1]'></p><p><label for='tel2'>Téléphone Bureau</label><input type='text' name='debiteur["+counter+"][tel2]'></p><p><label for='fax'>Fax</label><input type='text' name='debiteur["+counter+"][fax]'></p><p><label for='fax2'>Autre numéro</label><input type='text' name='debiteur["+counter+"][fax2]'></p><p><label for='gsm'>Gsm</label><input type='text' name='debiteur["+counter+"][gsm]'></p><p><label for='gsm2'>Autre numéro</label><input type='text' name='debiteur["+counter+"][gsm2]'></p><p><label for='e_mail'>E-mail</label><input type='text' name='debiteur["+counter+"][e_mail]'></p><p><label for='iban1'>Iban</label><input type='text' name='debiteur["+counter+"][iban1]'></p><p><label for='iban2'>Iban</label><input type='text' name='debiteur["+counter+"][iban2]'></p><p><label for='iban3'>Iban</label><input type='text' name='debiteur["+counter+"][iban3]'></p><p><input type='button' value='Supprimer' onClick='removeElement('"+counter+"');'></p>";
document.getElementById(divName).appendChild(newdiv).setAttribute('id', ""+counter+"");
counter++;
}
}
function addentreprise(divName){
if (counter == limit) {
alert("Vous avez atteint la limite de " + counter + " débiteurs");
}
else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "<p><label for='qualite'>Qualité</label><input type='text' name='debiteur["+counter+"][qualite]'></p><p><label for='raison_sociale'>Raison_sociale</label><input type='text' name='debiteur["+counter+"][raison_sociale]'></p><p><label for='siret'>Siret</label><input type='text' name='debiteur["+counter+"][siret]'></p><p><label for='nom'>Nom</label><input type='text' name='debiteur["+counter+"][nom]'></p><p><label for='prenom'>Prénom</label><input type='text' name='debiteur["+counter+"][prenom]'></p><p><label for='profession'>Profession</label><input type='text' name='debiteur["+counter+"][profession]'></p><p><label for='adresse'>Adresse</label><input type='text' name='debiteur["+counter+"][adresse]'></p><p><label for='adresse2'>Suite</label><input type='text' name='debiteur["+counter+"][adresse2]'></p><p><label for='code_postal'>Code Postal</label><input type='text' name='debiteur["+counter+"][code_postal]'></p><p><label for='ville'>Ville</label><input type='text' name='debiteur["+counter+"][ville]'></p><p><label for='tel'>Téléphone domicile</label><input type='text' name='debiteur["+counter+"][tel1]'></p><p><label for='tel2'>Téléphone Bureau</label><input type='text' name='debiteur["+counter+"][tel2]'></p><p><label for='fax'>Fax</label><input type='text' name='debiteur["+counter+"][fax]'></p><p><label for='fax2'>Autre numéro</label><input type='text' name='debiteur["+counter+"][fax2]'></p><p><label for='gsm'>Gsm</label><input type='text' name='debiteur["+counter+"][gsm]'></p><p><label for='gsm2'>Autre numéro</label><input type='text' name='debiteur["+counter+"][gsm2]'></p><p><label for='e_mail'>E-mail</label><input type='text' name='debiteur["+counter+"][e_mail]'></p><p><label for='iban1'>Iban</label><input type='text' name='debiteur["+counter+"][iban1]'></p><p><label for='iban2'>Iban</label><input type='text' name='debiteur["+counter+"][iban2]'></p><p><label for='iban3'>Iban</label><input type='text' name='debiteur["+counter+"][iban3]'></p><p></p>";
document.getElementById(divName).appendChild(newdiv).setAttribute('id', ""+counter+"");
counter++;
}
}
function addfacture(divName){
var newdiv = document.createElement('div');
newdiv.innerHTML = "<p><label for='libelle'>N° de facture</label><input type='text' name='facture["+counter+"][libelle]'></p><p><label for='date_facture'>Date de facture</label><input type='text' name='facture["+counter+"][date_facture]'></p><p><label for='date_echue'>Date de l'échéance</label><input type='text' name='facture["+counter+"][date_echue]'></p><p><label for='montant'>Montant du</label><input type='text' name='facture["+counter+"][montant]'></p><p></p>";
document.getElementById(divName).appendChild(newdiv).setAttribute('id', ""+counter+"");
[/javascript]

le soucis c'est qu'un double clic peut otujours arriver e tje voudrais par conséquent supprimer le div "en trop". j'ai donc essayé avec remove element by id, mais ça ne fonctionne pas, j'ai rajouté cette fonction:
[javascript]}
function removeElement(id) {
var element = document.getElementById(id);
element.parentNode.removeChild(element);
}[/javascript]


mais rien n'y fait,

par avance merci pour votre aide.
plus un bouton: [javascript]<input type='button' value='Supprimer' onClick='removeElement('"+counter+"');'>[/javascript]

ViPHP
xTG
ViPHP | 7331 Messages

06 juin 2012, 14:08

As-tu visionné le HTML généré pour vérifier que l'attribut id était bien rempli ?
As-tu vérifié ce que renvoyait ton getElementById() ?

Mammouth du PHP | 702 Messages

06 juin 2012, 16:05

problème de quotes effectivement, merci bien xTg je cherchais avec la console de débogage mais cela ne m'indiquait que tout autre chose.