IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Les array en javascript


Sujet :

JavaScript

Vue hybride

s.rais Les array en javascript 27/10/2013, 11h52
NoSmoking Bonjur, cela commence mal... 27/10/2013, 14h20
sekaijin bonjour. je te propose de... 28/10/2013, 13h56
s.rais Bonsoir à tous. Et merci pour... 31/10/2013, 17h35
sekaijin push est une méthode qui... 31/10/2013, 18h06
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2003
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 173
    Par défaut Les array en javascript
    Bonjour à tous.
    J'ai un tableau html qui contient en ligne les articles achetés et en colonne (Id_Prouit, nom_Produits,quantité, prix total). Je voudrais mettre le contenu de ce tableau dans un "Array" pour les insérer dans ma base mysql ; ci-après la fonction.
    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
    17
    18
    function validerPanier()
    {
    	var arrayLignes = document.getElementById("Panier").rows;
    	var nbrLigne = arrayLignes.length;
    	var MonTableau = new Array(nbrLigne,nbrColonne);
            for(var i=2; i<nbrLigne; i++)
    	{
        		var arrayColonnes = arrayLignes[i].cells;
        		var nbrColonne = arrayColonnes.length;
        		for(var j=0; j<nbrColonne; j++)
        		{
    			MonTableau[i,j]=arrayColonnes[j].textContent;
    			alert("ligne " + i +" colone " + j + " = " + monTableau[i,j]);
        		}
    	}
    	alert("nombre de ligne = "+nbrLigne);
    	alert("nombre de colonne = "+nbrColonne);
    }
    Pour vérifier cette fontion j'ai procéder par des "alert" ça marche ligne par ligne. Le code suivant pour vérifier le contenu en entier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for(var i=2; i=nbrLigne; i++)
    {
    	for(var j=0; j<nbrColonne; j++)
    	{
    		alert("ligne " + i +" colone " + j + " = " + MonTableau[i,j]);
    	}
    }
    Mais à la fin je n'arrive pas à lister le contenu de toute la table. Seule la dernière ligne est affichée. Pouvez vous m'aider ? Merci.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjur,
    cela commence mal avec
    var MonTableau = new Array(nbrLigne,nbrColonne);
    cette façon de déclarer un Array crée un tableau de 2 éléments valant nbrLigne et nbrColonne, cette valeur valant undefined au moment de son utilisation d'ailleurs, et non pas un tableau de tableau.
    Comment déclarer et initialiser un tableau ?
    il vaudrait mieux que tu partes sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var MonTableau = [];
    for (var i = 2; i < nbrLigne; i++) {
        MonTableau[i] = []; // monTableau[i] est aussi un tableau
        // la suite
    }
    voilà pour un début.

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    bonjour.

    je te propose de lire cette discussion.
    http://www.developpez.net/forums/d12...e-entree-plus/

    Un tableau de tableaux n'est pas une matrice. il te faut donc soit garantir le contenus de chaque éléments du tableau de tableau. tu dois donc garantir que chaque élément est un tableau.
    tu dois aussi garantir que chaque tableau a la bonne longueur.
    et enfin tu doit garantir que chaque élément d'un des tableaux est bien ce que tu attend.

    mais dans ton cas je ne comprends pas pourquoi tu utilise des tableaux en effet tu dis toi-même que les tableaux contenu dans le tableau principal à un sémentique Id_Prouit, nom_Produits,quantité, prix total
    perso j'utiliserais des objets.
    ainsi tu as un tableau d'objet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var Id_Prouit=0, nom_Produits=1,quantite=2, prix total=3;
    var arrayLignes = document.getElementById("Panier").rows; 			
    var nbrLigne = arrayLignes.length;									
    var MonTableau = new Array();
    for(var i=2; i<nbrLigne; i++)												
    {
      MonTableau.push({
        "Id_Prouit"   : arrayLignes[i].cells[Id_Prouit],
        "nom_Produits": arrayLignes[i].cells[nom_Produits],
        "quantite"    : arrayLignes[i].cells[quantite],
        "total"       : arrayLignes[i].cells[total]
      });
    }
    le B.A.BA de la syntaxe des tableaux en jsle constructeur Array peut prendre autant de paramètres que l'on veut les valeurs de ces paramètres seront TOUS, les valeurs initiales du contenu du tableau.

    Un tableau javascript n'a et ne peut avoir QU'UNE et UNE SEULE dimension.Signifie créer un tableau à UNE dimension contenant les valeurs 3 et 4.
    Il ne signifie pas créer un tableau à DEUX dimensions de 3 lignes et 4 colonnes.

    les matrices n'existant pas en js il est impossible d'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonTableau[i,j]=arrayColonnes[j].textContent;
    A+JYT

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2003
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 173
    Par défaut
    Bonsoir à tous. Et merci pour sekaijin d'avoir répondu.

    Citation Envoyé par sekaijin Voir le message
    je te propose de lire cette discussion.
    http://www.developpez.net/forums/d12...e-entree-plus/
    J'ai lu et relu la discussion. Mais n'étant pas fort en js et j'apprend je n'ai pas compris ton code sur tous l'ajout 'MonTableau.push'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var Id_Prouit=0, nom_Produits=1,quantite=2, prix total=3;
    var arrayLignes = document.getElementById("Panier").rows; 			
    var nbrLigne = arrayLignes.length;									
    var MonTableau = new Array();
    for(var i=2; i<nbrLigne; i++)												
    {
      MonTableau.push({
        "Id_Prouit"   : arrayLignes[i].cells[Id_Prouit],
        "nom_Produits": arrayLignes[i].cells[nom_Produits],
        "quantite"    : arrayLignes[i].cells[quantite],
        "total"       : arrayLignes[i].cells[total]
      });
    }
    tu veux bien m'expliquer ? Merci

  5. #5
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    push est une méthode qui ajoute un élément à un tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tab = new Array(1, 2, 3, 4); // tab est un tableau qui contient les valeurs 1, 2, 3, 4
    tab.push(9); // tab est un tableau qui contient les valeurs 1, 2, 3, 4, 9
    la suite est la construction d'un objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    obj = {
        "Id_Prouit"   : 12345,
        "nom_Produits": "Mon Produit",
        "quantite"    : 10,
        "total"       : 15
      };
    cet objet a les membres Id_Produit, nom_Produits, quantite, total.
    chaque membre est accessible de deux façon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    console.log(obj.total); // 15
    console.log(obj["total"]); // 15
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      MonTableau.push({
        "Id_Prouit"   : arrayLignes[i].cells[Id_Prouit],
        "nom_Produits": arrayLignes[i].cells[nom_Produits],
        "quantite"    : arrayLignes[i].cells[quantite],
        "total"       : arrayLignes[i].cells[total]
      });
    Ajoute à mon tableau un objet contenant les infos d'un produit.
    A+JYT

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2003
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 173
    Par défaut
    Merci beaucoup c'est claire.

    Comment doit-je faire pour récupérer le contenu ?

Discussions similaires

  1. problem array en javascript
    Par sissa_87 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 04/05/2006, 12h13
  2. Java 5.0, les templates et les arrays
    Par anykeyh dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 20/12/2005, 22h14
  3. Utilisation des Array en javascript serveur
    Par clisson dans le forum XMLRAD
    Réponses: 4
    Dernier message: 13/06/2005, 15h46
  4. problème avec les array en pl/pgsql
    Par nico31120 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 04/03/2005, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo