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 :

Créer un tableau à trois dimensions


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut Créer un tableau à trois dimensions
    Bonjour à tous,

    j’extraie de ma base de donnée MYSQL les informations que j'envoi dans les variable de SESSION.
    Mon but est de créer un tableau en javascript à 3 dimension pour au final réaliser une boucle dessus

    Code php : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <script type="text/javascript">
    var index = new Array();
    var colonne0 = new Array();
    var colonne1 = new Array();
    var test = new Array(index,colonne0,colonne1);
    <?php 
    $index=0;
    if(ISSET($_SESSION['rdv_ate']) && $_SESSION['rdv_ate']==1)
    	{
     
    		echo '
    		index['.$index.'] = new Array();
    		index['.$index.']="'.$index.'";
    		colonne0[1]="rdv";
    		colonne1[2]="'.$_SESSION['time_ate'].'";';
    	$index=$index+1;
    	} 
    	if(ISSET($_SESSION['news']) && $_SESSION['news']==1)
    	{
    			echo '
    			index['.$index.'] = new Array();
    		index['.$index.']="'.$index.'";
    		colonne0[1]="news";
    		colonne1[2]="'.$_SESSION['time_news'].'";';
    	$index=$index+1;
    	}
    	if(ISSET($_SESSION['planetvo']) && $_SESSION['planetvo']==1)
    	{
    				echo '
    				index['.$index.'] = new Array();
    		index['.$index.']="'.$index.'";
    		colonne0[1]="planetvo";
    		colonne1[2]="'.$_SESSION['time_planetvo'].'";';
    	$index=$index+1;
    	} 
    	if(ISSET($_SESSION['video']) && $_SESSION['video']==1)
    	{ 
    				echo '
    				index['.$index.'] = new Array();
    		index['.$index.']="'.$index.'";
    		colonne0[1]="video";
    		colonne1[2]="'.$_SESSION['time_video'].'";';
    	$index=$index+1;
    	} 
    	?>

    Résulalt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type="text/javascript">
    var index = new Array();
    var colonne0 = new Array();
    var colonne1 = new Array();
    var test = new Array(index,colonne0,colonne1);
     
    		index[0] = new Array();
    		index[0]="0";
    		colonne0[1]="rdv";
    		colonne1[2]="120";
    				index[1] = new Array();
    		index[1]="1";
    		colonne0[1]="planetvo";
    		colonne1[2]="120";
    Je n'arrive pas à construire mon tableau javascript.

    Je voudrais arriver un tableau sous cette forme:
    ID|Categorie|Time|
    0|rdv|120|
    1|planetvo|120|

    Mon but final (car il y a peut etre un code/ solution plus simple en javascript) c'est de boucler dessus (le nombre de ligne est variable 1 à 5) et de récupérer les deux valeurs pour après enclencher du code ajax.

    Quelle sont les erreurs que j'ai commise ? est-ce qu'il y a un code/solution plus simple pour arrivée au même fonctionnement ?

    Merci d'avance pour vos explications

    guigui69

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Exemple :

    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
    19
    20
    21
    22
    let
      i = [],
      j = [],
      k = [],
      ar3 = [ i, j, k ];
     
    i[0] = "0";
    i[1] = "1";
    i[2] = "2";
     
    j[0] = "rdv";
    j[1] = "planetvo";
    j[2] = "dvjh";
     
    k[0] = "120";
    k[1] = "240";
    k[2] = "360";
     
    // debug, console, touche F12
    console.log( "i[2] = ", ar3[0][2] ); // i[2] =  2
    console.log( "j[0] = ", ar3[1][0] ); // j[0] =  rdv
    console.log( "k[1] = ", ar3[2][1] ); // k[1] =  240

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre très actif
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 744
    Par défaut
    il y a aussi la possibilité d'utiliser un tableau d'objet json

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var tb_obj = [
    		{
                    "index":"0",
    		"colonne0":"rdv",
    		"colonne1":"120"
                    },
                    {
    		"index":"1",
    		"colonne0":"planetvo",
    		"colonne1":"120"
                    }
              ]

  4. #4
    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
    je ne vois pas de tableau à trois dimensions dans ton histoire à la rigueur deux

    mais tant en php qu'en js ça n'existe pas.
    on peut faire des tableau de tableau pour simuler un tableau à deux dimensions
    ou un tableau de tableau de tableau pour simuler un tableau à trois dimensions

    2 dimension.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php $tab = array(
      array(12, 15, 45),
      array(67, 95, 5),
      array(0, 23, 67),
      array(19, 87, 5),
    );
    //pour le passer à javascript
    ?><script>var jsTab = <?php echo json_encode($tab); ?>;</script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (var i= 0; i<jsTab.length; i++) {
     for (var j = 0; j < jsTab[i].length; j++) {
       console.log(jsTab[i][j]);
     }
    }
    enfin dans ton cas je ne vois absolument pas pourquoi tu cherche à faire un tableau à 2 dimensions.
    si j'ai compris ta var $SESSION contient des info que tu veux transmettre à js
    ces info sont de la forme
    Code text : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ID|Categorie|Time|
    0 |rdv      |120 |
    1 |planetvo |120 |
    en clair tu as des lignes qui ont trois attributs

    en php je ferais un tableau de HashMap
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var $tab = array(
      array("index" => 0, "Categorie" => "rdv",      "Time" => 120),
      array("index" => 1, "Categorie" => "planetvo", "Time" => 120)
    );
    pour le passer à javascript
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>var jsTab = <?php echo json_encode($tab); ?>;</script>
    et dans ton javascript tu obtiens un tableau d'objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //le for in de js est ~ l'équivalent de foreach en php 
    //foreach($jsTab as $ligne)
    for (ligne in jsTab) {
      console.log(ligne.index + "|" + ligne.Categorie + "|" + ligne.Time);
    }

    je te déconseil de faire ça dans ton site
    mais pour expérimenter tu peux faire
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>var jsSession = <?php echo json_encode($_SESSION); ?>;</script>
    tu ouvres ta page et avec le debugeur JS vas voir ce que contient jsSession
    tu verras que c'est un objet avec toutes les entrées de $_Session ou chaque valeur est un objet, une string, un booléen, un nombre en fonction de ce qu'il y avait dans $_SESSION

    il ne faut pas le faire en production car sinon tu donnes des info aux pirates pour te hacker.

    A+JYT

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Bonjour à tous,

    merci pour ces informations je regarde vos code et je reviens après.

    Encore merci

    guigui69

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Un tableau à deux dimensions est une liste de listes de valeurs, soit une liste d'éléments dont chaque élément est lui-même une liste. Si tu souhaites stocker chaque ligne sous forme de liste [id, categorie, time], alors on peut éventuellement parler de tableau à 2 dimensions. Mais certainement pas 3 dimensions, les colonnes n'ont rien à voir avec le nombre de dimensions d'un tableau.

    Le plus simple ici pour modéliser ce que tu veux est de faire une liste d'objets (tableau à une dimension donc), chaque objet ayant 3 propriétés id, categorie et time, comme montré par melka one.

Discussions similaires

  1. Créer un tableau à 2 dimensions dépendantes
    Par bobbyboy dans le forum Fortran
    Réponses: 8
    Dernier message: 21/06/2012, 19h26
  2. Créer un tableau à deux dimensions dynamique
    Par dev14 dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2012, 09h12
  3. Tableau à trois dimensions et malloc
    Par UrSuS AmErIcAnUs dans le forum Débuter
    Réponses: 2
    Dernier message: 19/03/2008, 13h50
  4. Réponses: 1
    Dernier message: 06/04/2007, 11h38
  5. créer un tableau 2 dimensions avec Malloc
    Par nimportekoi dans le forum C
    Réponses: 14
    Dernier message: 15/11/2006, 13h01

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