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 :
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 :
étape 2 :
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)
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).
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(); }
Je vous remercie par avance pour votre aide.![]()
Partager