InnerHTML [Résolu]

developinform 35 Messages postés samedi 29 septembre 2007Date d'inscription 22 mars 2010 Dernière intervention - 20 nov. 2007 à 11:27 - Dernière réponse : developinform 35 Messages postés samedi 29 septembre 2007Date d'inscription 22 mars 2010 Dernière intervention
- 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+
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Anthed 152 Messages postés dimanche 20 février 2005Date d'inscription 17 janvier 2014 Dernière intervention - 20 nov. 2007 à 11:39
3
Merci
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ô.

Merci Anthed 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 80 internautes ce mois-ci

Commenter la réponse de Anthed
Meilleure réponse
Anthed 152 Messages postés dimanche 20 février 2005Date d'inscription 17 janvier 2014 Dernière intervention - 20 nov. 2007 à 14:05
3
Merci
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()

Tchô.

Merci Anthed 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 80 internautes ce mois-ci

Commenter la réponse de Anthed
developinform 35 Messages postés samedi 29 septembre 2007Date d'inscription 22 mars 2010 Dernière intervention - 20 nov. 2007 à 12:04
0
Merci
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+
Commenter la réponse de developinform
developinform 35 Messages postés samedi 29 septembre 2007Date d'inscription 22 mars 2010 Dernière intervention - 20 nov. 2007 à 19:43
0
Merci
Merci bcp, c'est exactement ce que j'étais entrain de chercher (
tr.id = id
) .
Merci aussi pour la remarque .
a+
Commenter la réponse de developinform

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.