frieurieud Posted June 26, 2014 Share Posted June 26, 2014 (edited) Bonjour à tous, "Quelle est cette drôle d'idée !" vous demandez-vous et une explication s'impose. Mon but est de transformer le tableau des prix dégressifs de façon à ce que le client sélectionne une ligne avant de l'ajouter au panier". Pour sélectionner cette ligne des boutons radio s'imposent naturellement. Ce tableau remplacerai donc le champ quantité. Pour le moment j'ai ajouté une colonne contenant le prix total de chaque déclinaison. Pour une meilleur compréhension, allez voir ici et sélectionnez le produit affiche. Bien passons aux choses sérieuses maintenant. Pour le moment je n'en suis qu'à la phase teste. Si je remplace mon champ quantité par : <input type="radio" name="qty" value=100 />100<br/> <input type="radio" name="qty" value=200 />200<br/> <input type="radio" name="qty" value=300 />300<br/> et qu'après avoir fait mon choix, je clique sur 'ajouter au panier', la quantité envoyée est 1. Le code du champ texte 'quantité' est celui-ci : <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}" size="2" maxlength="3" {if $product->minimal_quantity > 1}onkeyup="checkMinimalQuantity({$product->minimal_quantity});"{/if} /> et celui de mon menu déroulant est : <select name="qty" id="quantity_wanted"> <option>100</option> <option>200</option> <option>300</option></select> Pour le menu et le champ texte, 'qty' contient la saisie ou la sélection par contre pour les radio il ne prend pas en compte ce que contient les values. L'envoi du formulaire se fait en method="post" donc je ne comprend pas pourquoi 'qty ' n'accepte pas les values alors qu'il devrait les prendre (ou du moins celle sélectionnée). Donc j'en perd mon latin et mon html. Si quelqu'un a une idée il est le bienvenue. Merci d'avance. Edited June 30, 2014 by frieurieud (see edit history) Link to comment Share on other sites More sharing options...
YopixelAE Posted June 26, 2014 Share Posted June 26, 2014 Bonjour, pourquoi 'qty ' n'accepte pas les values alors qu'il devrait les prendre (ou du moins celle sélectionnée). value="value1" vous avez oublié les double quotes. Link to comment Share on other sites More sharing options...
frieurieud Posted June 26, 2014 Author Share Posted June 26, 2014 Bonjour Yopixel, En effet, logiquement il les faut parce que visiblement il récupère le texte et non la valeur. Il doit les convertir plus loin. Mais ça ne fonctionne pas non plus je l'avais déjà testé. Merci quand même Link to comment Share on other sites More sharing options...
YopixelAE Posted June 26, 2014 Share Posted June 26, 2014 Il manque l'ID sur le select radio. Link to comment Share on other sites More sharing options...
S-HAMMANI Posted June 26, 2014 Share Posted June 26, 2014 Bonjour et tu laisse les deux à la fois; les radio et le input-text à changer en hidden et à chaque choix du bouton radio le champs text (hidden) recevra l'option choisie avec un peu de javascript : ton code sera comme suit: <input type="radio" name="un_nom_pas_qty" value="100" onclick="$('#quantity_wanted').val(this.value)" />100<br/> <input type="radio" name="un_nom_pas_qty" value="200" onclick="$('#quantity_wanted').val(this.value)" />200<br/> <input type="radio" name="un_nom_pas_qty" value="300" onclick="$('#quantity_wanted').val(this.value)" />300<br/> 1 Link to comment Share on other sites More sharing options...
frieurieud Posted June 27, 2014 Author Share Posted June 27, 2014 Maiiiiis oui ! quel andouille je suis de ne pas y avoir pensé ( je me cache) +1 à ce très cher S-Hammani. C'est super merci beaucoup. Pour répondre à Yopixel, c'est pareil je l'avait testé avec l'id aussi. Merci à toi aussi d'avoir pris un peu de ton temps pour m'aider. Maintenant y à plus qu'à modifier mon tableau 'prix dégressifs'. Je ne ferme pas ce poste j'y ajouterai (si ça fonctionne) mon bout de code pour ceux que ça interesse. Tchô ! Link to comment Share on other sites More sharing options...
frieurieud Posted June 30, 2014 Author Share Posted June 30, 2014 Voili voilou, j'ai mon tableau aux prix dégressifs qui me permet d'ajouter au panier la ligne selectionnée. Pour ceux que ça interesse, nous allons modifier le fichier product.tpl Tout en haut du code avec les déclaration de variables ajouter après <script type="text/javascript"> {assign var="p_unit" value=0}; {assign var="num_radio" value=0}; p_unit va nous permettre de récupérer le prix unitaire num_radio va permettre à l'utilisateur de cliquer sur la désignation afin de faire sa selection. Ensuite, nous avons besoin de modifier le champs texte (dans lequel on insere la quantité) par un menu déroulant. Pour cela repérer : <!-- quantity wanted --> et changer les lignes <label>{l s='Quantity:'}</label> <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}" size="2" maxlength="3" {if $product->minimal_quantity > 1}onkeyup="checkMinimalQuantity({$product->minimal_quantity});"{/if} /> par <label>{l s='Quantity:'}</label> <select name="qty" id="quantity_wanted"> <option>100</option> <option>250</option> <option>500</option> <option>1000</option> </select> Pour la partie prix dégressifs voici le code avec les modifs : <div id="quantityDiscount"> <table class="std_discount"> <thead> <tr> <th>{l s='Product'}</th> <th class="th_titre">{l s='From (qty)'}</th> <th class="th_titre">{if Configuration::get('PS_DISPLAY_DISCOUNT_PRICE')}{l s='Price (unit)'}{else}{l s='Discount'}{/if}</th> <th class="th_titre">{l s='TOTAL'}</th> </tr> </thead> <tbody> {foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'} {$num_radio=$num_radio+1} <tr id="quantityDiscount_{$quantity_discount.id_product_attribute}" class="quantityDiscount_{$quantity_discount.id_product_attribute}"> <td> <!-- **************************************************************************************************** DESIGNATION --> <div class="radio_group"> {if ((($product->id == 8) and ($quantity_discount.quantity|intval != 3000)) or (($product->id == 9) and ($quantity_discount.quantity|intval != 250)))} <input type="radio" name="radio_prix" class="radio_type" id="radio{$num_radio}" value="{$quantity_discount.quantity|intval}" onclick="$('#quantity_wanted').val(this.value)" /> {else} <input type="radio" name="radio_prix" class="radio_type" id="radio{$num_radio}" value="{$quantity_discount.quantity|intval}" checked="checked" onclick="$('#quantity_wanted').val(this.value)" /> {/if} </div> <div class="label_group"> <label for="radio{$num_radio}" /> {if (isset($quantity_discount.attributes) && ($quantity_discount.attributes))} {$product->getProductName($quantity_discount.id_product, $quantity_discount.id_product_attribute)} {else} {$product->getProductName($quantity_discount.id_product)} {/if} </label> </div> </td> <td id="td_qty">{$quantity_discount.quantity|intval}</td> <!-- ************************************************************ QUANTITE --> <td id="td_unit"> <!-- ***************************************************************************************************** PRIX --> {if $quantity_discount.price >= 0 OR $quantity_discount.reduction_type == 'amount'} {if Configuration::get('PS_DISPLAY_DISCOUNT_PRICE')} {convertPrice price=$productPrice-$quantity_discount.real_value|floatval} {$p_unit =$productPrice-$quantity_discount.real_value|floatval} {else} -{convertPrice price=$quantity_discount.real_value|floatval} {$p_unit =-$quantity_discount.real_value|floatval} {/if} {else} {if Configuration::get('PS_DISPLAY_DISCOUNT_PRICE')} {convertPrice price = $productPrice-($productPrice*$quantity_discount.reduction)|floatval} {$p_unit =$productPrice-($productPrice*$quantity_discount.reduction)|floatval} {else} -{$quantity_discount.real_value|floatval}% {$p_unit =-$quantity_discount.real_value|floatval}% {/if} {/if} </td> <td id="td_total"> <!-- ****************************************************************************************************** TOTAL --> {($quantity_discount.quantity|intval*($p_unit |round:2))|string_format:"%.2f"} € </td> </tr> {/foreach} </tbody> </table> </div> Je crois que c'est tout, si il y a des questions ou des améliorations contactez moi 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now