developinform
Messages postés35Date d'inscriptionsamedi 29 septembre 2007StatutMembreDernière intervention22 mars 2010
-
20 nov. 2007 à 11:27
developinform
Messages postés35Date d'inscriptionsamedi 29 septembre 2007StatutMembreDernière intervention22 mars 2010
-
20 nov. 2007 à 19:43
Bonjour;
c'est la première foi que j'utilise innerHTML :
function Ajouter()
{
var idp= fproduit.desi.options[fproduit.desi.selectedIndex].value;
var des= fproduit.desi.options[fproduit.desi.selectedIndex].text;
var qd= fproduit.qd.value;
var pr= fproduit.prix.value;
if(idp=="" || qd=="" || pr=="" || qd==0 || pr==0)
{
alert("Veuillez remplir tous les champs");
}
else
{document.getElementById('ajout').innerHTML="<tr id="+idp+"><td>"+des+"</td><td>"+qd+"</td><td>"+pr+"</td><td>"+(qd*pr)+"</td></tr>";}
}
l'appel de la fonction ajouter() :
....
----
des,
qd,
pr,
m,
....
le problème c'est au niveau de l'execution, rien ne s'affiche, normalement il faut afficher une ligne à la fin du tableau (dans la balise
) même un message d'erreur.
Aidez moi SVP. et merci.
a+
Anthed
Messages postés152Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention17 janvier 20143 20 nov. 2007 à 11:39
Hello,
innerHTML n'est pas conseillé pour tous les types d'éléments HTML.
Pour ton tableau, mieux vaut utiliser les fonctions insertRow et insertCell (et éventuellement appendChild pour ajouter des éléments à tes cellules).
Tchô.
Anthed
Messages postés152Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention17 janvier 20143 20 nov. 2007 à 14:05
Je ne connais pas ton besoin mais tu peux passer ton identifiant en paramètre de ta fonction et l'affecter à ta ligne :
function Ajouter(id) {
var tr = document.createElement("tr");
tr.id = id;
}
ou encore utiliser une variable globale incrémentale :
var count = 0;
function Ajouter() {
var tr = document.createElement("tr");
tr.id = "le_prefixe_de_ton_choix" + count;
count++;
}
A toi de voir de quelle façon tu souhaites récupérer ces identifiants ...
Petite remarque : la norme de codage déconseille les majuscules en début des noms de fonctions. Utiliser la norme suivante :
fonction maFonctionQuiFaitCeQueJeVeux()
developinform
Messages postés35Date d'inscriptionsamedi 29 septembre 2007StatutMembreDernière intervention22 mars 2010 20 nov. 2007 à 12:04
Bonjour;
Oui, j'utilise normalement DOM, mais cette foi j'ai voulu ulisier innerHTML pour donnais à chaque ligne <tr id=""> un identifiant que j'aurais besoin dans la suite de mon programme. je pense qu'avec le DOM est imposible de définir a chaque ligne <tr> un identifiant :
voilà mon code avec la méthode DOM, mais il reste toujours incomplet, parceque j'aurais besoin de donner a chaque <tr id=""> un identifiant :
function Ajouter()
{
var idp= fproduit.desi.options[fproduit.desi.selectedIndex].value;
var des= fproduit.desi.options[fproduit.desi.selectedIndex].text;
var qd= fproduit.qd.value;
var pr= fproduit.prix.value;
var tr = document.createElement("tr");
var td = document.createElement("td");
var texte = document.createTextNode(des);
td.appendChild(texte);
tr.appendChild(td);
.....
document.getElementById("ajout").appendChild(tr);
}
si vous avez une idée pour compléter la fonction Ajouter(), merci d'avance.
a+