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 :

Update d'un array/objet


Sujet :

JavaScript

  1. #1
    Membre averti
    Femme Profil pro
    D�veloppeuse Web
    Inscrit en
    Mai 2017
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 35
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeuse Web

    Informations forums :
    Inscription : Mai 2017
    Messages : 16
    Par d�faut Update d'un array/objet
    Bonjour � tous,

    Vous vous en doutez, je rencontre quelques soucis avec Javascript.

    L'objectif est simple. L'utilisateur d'un BackOffice peut enregistr�e diff�rentes donn�es et les classer. Cela se pr�sente sous forme de blocks individuels dans lequel se trouve un select charg� dynamiquement pour faire le classement.
    Au pr�alable, un input text permet de rajouter des valeurs (des cat�gories) au select dynamique. Ce select est charg� de deux fa�on : par l'input en gestion imm�diate et par php, dans le cas d'une �dition de donn�es. Donc les deux peuvent cohabiter et c'est l� que le probl�me est.

    Quand on �dite, on a un array php qui est g�n�r�. On le transmet � JS par un json_encode, afin de permettre � JS de g�rer le rajout des cat�gories. Ma variable category contient les donn�es au format suivant :
    Nom : console.jpg
Affichages : 121
Taille : 40,8 Ko

    Mon besoin est de rajouter des cat�gories � Object.nl ou Object.fr sachant que les langues ne sont pas fixes (site traduit).

    Je ne suis pas dou�e avec les objets JS et j'ai longuement chercher des solutions sans r�sultats. Je vous montre le cheminement du code (parce que c'est important )

    �tape 1 :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var id_category = <?php echo json_encode($tab_category); ?>; (ce qui nous donne le résultat précédent en console)
    �tape 2 :
    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
    function updateCategory(id_langue) {
    	var cat = $('#id_addcategory_' + id_langue).val();
    	//je prépare le select du block concerné
    	var opt_category = $('#select_update_category').html();
    	opt_category = opt_category.replace(new RegExp('IDADDCATEGORY', 'g'), cat);console.log(id_category.id_langue);
    	id_category[id_langue].push(cat);
    	var block_cat = $('#block_category').html();
    	block_cat = block_cat.replace(new RegExp('LABEL', 'g'), cat);
    	$('#list_category_block_' + id_langue).append(block_cat);
            $('#id_addcategory_' + id_langue).val('');
            if($('#list_category_block_' + id_langue + ' .categorie-block').length > 3) {
          		$('.addcategory_field_' + id_langue).hide();
          	}
          	i++;
    	$('.comkit_select_'+id_langue).append('<option value="' + cat + '">' + cat + '</option>');
    	init_deleteCategory();
    }
    Sachant que je ne peux pas dissocier cet objet, je dois imp�rativement l'updater car je le r�utilise plus bas avec toutes les cat�gories qu'il contient (les �ventuelles �dition charg�e par php et les nouvelles ajout�es en js).
    Je vous remercie par avance pour votre aide.

  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 : 75
    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


    Je ne sais pas si j'ai compris votre besoin, mais voici un exemple montrant comment ajouter et supprimer des cat�gories et des �l�ments dans les cat�gories. Il montre aussi comment lister les cl�s et les valeurs contenues dans l'objet id_category.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    function removeElemInArr( array, element ) {
      const index = array.indexOf( element );
     
      if ( index !== -1 ){
        array.splice( index, 1 );
      }
    }
     
    function updateCategory( id_langue, cat ) {
      id_category[ id_langue ].push( cat );
    }
     
    let id_category = {
      "fr" : [],
      "nl" : [
        "add nl"
      ]
    };
     
    updateCategory( "nl", "import" );
    updateCategory( "nl", "export" );
    updateCategory( "fr", "add fr" );
    updateCategory( "fr", "delete" );
     
    id_category[ "be" ] = [];
     
    updateCategory( "be", "add be" );
    updateCategory( "be", "import" );
    updateCategory( "be", "export" );
     
    // debug, console, touche F12
    for ( const key of Object.keys( id_category ) ){
      console.log( key, " : ", id_category[ key ].join( ", " ) );
    }
     
    console.log( "----" );
     
    removeElemInArr( id_category[ "nl" ], "import" );
    removeElemInArr( id_category[ "be" ], "add be" );
     
    // debug, console, touche F12
    for ( const key of Object.keys( id_category ) ){
      console.log( key, " : ", id_category[ key ].join( ", " ) );
    }

    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 averti
    Femme Profil pro
    D�veloppeuse Web
    Inscrit en
    Mai 2017
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 35
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeuse Web

    Informations forums :
    Inscription : Mai 2017
    Messages : 16
    Par d�faut
    Le id_categoy[id_langue].push, c'est ce qui existe d�j� � l'heure actuelle mais qui ne fonctionne pas.

    id_category est un objet � cause de sa conversion par json_encode.
    En objet, je pourrais faire id_category.id_langue = cat, mais cela ne fonctionne pas pour deux raison.
    La premi�re, c'est que .push() ne semble pas �tre une m�thode applicable � l'objet, j'ai un message d'erreur en concole qui me dit que push n'est pas une fonction.
    La seconde, id_langue �tant dynamique, quand je fais cela, si id_langue vaut "nl", il me charge l'objet mais pas dans l'array "nl' qu'il contient. Il me cr�� un nouvel array qui s'appelle id_langue. Je me retrouve avec 3 array dans mon objet, l'array "fr", l'array "nl" et l'array "id_langue".

    Mon besoin, c'est de pouvoir charger mes donn�es en js sous ce format l� :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    id_category (objet)
            "fr" =>
                    0 => "categorie 1",
                    1 => "categorie 2",
                    etc...,
            "nl" =>
                    0 => "categorie 3",
                    1 => "categorie 4",
                    etc...,
    Un format obtenu par le json_encode qu'il me faut pouvoir updater en conservant ce format. Je sais pas si je suis plus clair ainsi

  4. #4
    Membre averti
    Femme Profil pro
    D�veloppeuse Web
    Inscrit en
    Mai 2017
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 35
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeuse Web

    Informations forums :
    Inscription : Mai 2017
    Messages : 16
    Par d�faut
    Bon du coup, j'ai fini par me r�soudre � faire un ensemble de fonction et restructurer le traitement js.

    Merci pour ton aide

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Refactoring et update en php non objet
    Par 69Pierre dans le forum Langage
    R�ponses: 1
    Dernier message: 25/09/2015, 17h28
  2. array, objet json et clef
    Par vincent29200 dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 24/09/2010, 17h03
  3. R�ponses: 4
    Dernier message: 05/12/2006, 11h52
  4. wxWidgets d�finir un array d'objets
    Par reptils dans le forum wxWidgets
    R�ponses: 1
    Dernier message: 26/07/2006, 16h00
  5. [Reflect] Cr�er un array d'objets avec le nom de leur classe
    Par Onarap dans le forum API standards et tierces
    R�ponses: 18
    Dernier message: 12/06/2006, 12h24

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