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