Jump to content

Problema con una funcion javascript en shoppint cart product line


trycster

Recommended Posts

Hola, estoi haciendo una tienda para vender telas en prestashop 1.6.0.11, se venderan por trozos de una medida que se le da desde la ficha del producto en el backoffice, he añadido un campo extra en la ficha del producto.  Luego con ese valor y la cantidad de producto que compras hago un calculo, con javascript, y te sale el total en cm de tela que compras, lo tengo integrado en el product.tpl y en shopping_cart_product_line.tpl. En el product.tpl funciona muy bien pero en el shopping_cart_product_line solo hace la funcion en el primer producto que sale en el resto no hace ningun calculo. Haber si me podrias decir que me he dejado para que la funcion en javascript funcione en todos los productos. Mis conocimientos de programacion son casi nulos y solo gracias a busquedas por internet he podido hacer hasta aqui.

El codigo que he modificado y añadido al shopping_cart_product_line es el siguiente:

 

<input size="2" type="hidden" value="{if $quantityDisplayed == 0 AND isset($customizedDatas.$productId.$productAttributeId)}{$customizedDatas.$productId.$productAttributeId|@count}{else}{$product.cart_quantity-$quantityDisplayed}{/if}" name="quantity_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}_hidden" />
                <input size="2" id="uno" onkeyup="calcula();" type="text" autocomplete="off" class="cart_quantity_input form-control grey" value="{if $quantityDisplayed == 0 AND isset($customizedDatas.$productId.$productAttributeId)}{$customizedDatas.$productId.$productAttributeId|@count}{else}{$product.cart_quantity-$quantityDisplayed}{/if}"  name="quantity_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}" />
                
                <div class="cart_quantity_button clearfix">
                {if $product.minimal_quantity < ($product.cart_quantity-$quantityDisplayed) OR $product.minimal_quantity <= 1}
                    <a rel="nofollow" onclick="timeout_init();" class="cart_quantity_down btn btn-default button-minus" id="cart_quantity_down_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}" href="{$link->getPageLink('cart', true, NULL, "add=1&id_product={$product.id_product|intval}&ipa={$product.id_product_attribute|intval}&id_address_delivery={$product.id_address_delivery|intval}&op=down&token={$token_cart}")|escape:'html':'UTF-8'}" title="{l s='Subtract'}">
                <span><i class="icon-minus"></i></span>
                </a>
                {else}
                    <a class="cart_quantity_down btn btn-default button-minus disabled" href="#" id="cart_quantity_down_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}" title="{l s='You must purchase a minimum of %d of this product.' sprintf=$product.minimal_quantity}">
                    <span><i class="icon-minus"></i></span>
                </a>
                {/if}
                    <a rel="nofollow" onclick="timeout_init();" class="cart_quantity_up btn btn-default button-plus" id="cart_quantity_up_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}" href="{$link->getPageLink('cart', true, NULL, "add=1&id_product={$product.id_product|intval}&ipa={$product.id_product_attribute|intval}&id_address_delivery={$product.id_address_delivery|intval}&token={$token_cart}")|escape:'html':'UTF-8'}" title="{l s='Add'}"><span><i class="icon-plus"></i></span></a>
                    <div>{l s='Total'}                                       
<script language="javascript">
window.onload = calcula;
                    function calcula(){                    
  var a = $('.cart_quantity_input').val();
  var b = Number( document.getElementById('dos').value );
  var c = a * b;
  document.getElementById('resultado').value = c;
}
                    function timeout_init() {
    setTimeout('calcula()', 1000);
}
</script>
<input size="2" type="hidden" id="dos" value="{$product.unidad}" onkeyup="calcula();">
<input size="1" type="text" id="resultado" value="" onkeyup="calcula();">
<style>                
#resultado{
    font-family: inherit;
    font-size: 13px;
    color: red;
    background-color: transparent;
    border-width:0;
}
</style>
{l s='cm'} </div>

 

Quedando en la web asi: Es la prueba que estoi haciendo sobre prestashop en local.

 

 

post-190716-0-38491700-1427542503_thumb.png

Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...