Bonjour à tous,
Je cherche à faire une mise à jour dynamique d'un tableau de prix:
j'ai d'un coté un champ caché qui contient des les valeurs de boutons radio dont je récupère le contenu, puis en fais un Array, (jusque là c'est bon) mais quand je veux récupérer les champs de valeur qui correspondent à ces index de boutons radio je patauge.
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
function update_xp_price(){
 
        var xp_pu = document.getElementsByName('xp_prix_u[]'); // la lecture des prix des produits
        var xp_qty = document.getElementsByName('x_products_qty[]'); // la lecture des quantité des produits
		var total = 0;
		var prefix = 0;
		var price_attr = 0;
		var attrib_price = 0;
		var attribut_val = new Array;
		var attribut_pref = new Array;
      var attributes = document.forms['cart_quantity'].GlobalAttributes.value; // ce champ contient les cases cochées séparées par un espace
      attributes = attributes.substring(0, attributes.length-1); // on élimine le dernier séparateur
      var attrib = new Array;
      attrib = attributes.split(" "); // on splitte dans un tableau
 
      var xl_opt_prefixe = new Array; //chaque option a 2 champs un préfixe (+ ou -)
      var xl_opt_value = new Array; // une valeur
 
 		for(var j =0; j<attrib.length;j++){ // selon le nombre ce cases cochées (contenu de l'array attrib) on implémente la valeur
            xl_opt_prefixe = document.getElementsByName('xl_options_prefix_'+j+'[]');// préfixe de chaque option
            xl_opt_value = document.getElementsByName('xl_options_value_'+j+'[]'); // valeur de chaqe option
    		for(var i =0; i<xp_pu.length;i++){  //ici on compte le nombre de prix produit xp_pu[] ce qui permet de faire une boucle
    			quantity 	  = return_val(xp_qty[i]); //la quantité pour chaque produit (ceci est OK)
    			price  		  = return_val(xp_pu[i]); //le prix pour chaque produit (ceci est OK aussi)
		//###### la fonction return_val me donne le contenu .value de chaque champ et ça fonctionne très bien pour ces deux champs
 
            		attrib_price  = return_val(xl_opt_value[i]); // c'est là que ça ne va plus !!! la variable xl_opt_value[i] ne me retourne rien via ma fonction de lecture de .value
 
    			if(!isNaN(quantity) && !isNaN(price)){
    				sous_total = quantity * (price + attrib_price); // ICI j'aurai aimé que mon attrib_price vale quelque-chose !
    				total+=sous_total;
    				get_obj('Prix'+i).innerHTML = sous_total+'€ TTC'; //j'affiche le sous-total par produit (q*p)
    			}
             }
         }
		if(get_obj('TotalXP')) get_obj('TotalXP').innerHTML=total+'€ TTC'; // j'affiche le total du tableau  
 
}
Voici les quelques lignes commentées de ma fonction qui bloque.
Pour info, je sors parfaitement les valeurs successives de xp_qty[i] et xp_pu[i] mais xl_opt_value[i] me donne une erreur. Il me semble que la double indexation de cette valeur en soit la cause... Mais je ne trouve pas.
Pourtant les champs existent bien dans la page.
dans ma page j'ai des champs de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<input type="hidden" name="xl_options_prefix_3[]" value="+"><input type="hidden" name="xl_options_value_3[]" value="30">
<input type="hidden" name="xl_options_prefix_4[]" value="+"><input type="hidden" name="xl_options_value_4[]" value="60">
Si vous avez de la lumière...
Merci de m'avoir lu