<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem shopping</title>
<link>https://forum.pasja-informatyki.pl/tag/shopping</link>
<description>Powered by Question2Answer</description>
<item>
<title>shopping cart, zmiana ceny za cały koszyk.</title>
<link>https://forum.pasja-informatyki.pl/581384/shopping-cart-zmiana-ceny-za-caly-koszyk</link>
<description>

&lt;p&gt;Dobry Wieczór,&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Mam w koszyku pare elementów. Stworzyłem sobie funkcje, która po zmianie ilośći zmienia mi cene danego produktu.&lt;/p&gt;



&lt;p&gt;i wszytko śmiga, ale mam problem z ceną całkowitą koszyka, jak moge ją wyświetlić prawidłowo po zmianie ilości produktu?.&lt;/p&gt;



&lt;p&gt;Poniżej kod, który odpowiedzialny jest za zmiane ilośći i ceny.&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const selectQuantinity = (e) =&amp;gt; {
        let option = e.target.value;
        let selectId = e.target.getAttribute(&quot;data-id&quot;);
        let currentSelect = e.target.previousElementSibling;
        const matchIdSelect = pricesAndIdObjArray.filter((item) =&amp;gt; {return item.itemId === selectId});
        if (matchIdSelect) {
            const currentPrice = matchIdSelect.map((item) =&amp;gt; {return item.itemPrice * option});
            currentSelect.innerHTML = `${currentPrice}$`;
        }
    }
    quantinitySelect.forEach((option) =&amp;gt; {option.addEventListener('click', selectQuantinity)});&lt;/pre&gt;



&lt;p&gt;a tutaj kod Ceny za cały koszyk&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
  const productPrices = [];
    
    const productPricesData = document.querySelectorAll('[data-price]').forEach((price) =&amp;gt; {
        productPrices.push(price.getAttribute('data-price'));
    });
    const pricesToNum = productPrices.map((price) =&amp;gt; {return price = +price});

    let sum = 0;
    const sumPrices = () =&amp;gt; {
        pricesToNum.forEach((item) =&amp;gt; {return sum+=item});
        totalPriceOfCartItems.innerHTML = `${sum}$`;
    }
    sumPrices()&lt;/pre&gt;



&lt;p&gt;Troche się głowie nad tym i już nie jestem w stanie nic wymyśleć, jak moge currentPrice podmieniac w pricesToNum ? i czy tutaj to coś da ?&amp;nbsp;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Cały kod :&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
import { changeValueOfCounter } from &quot;./utils.js&quot;;

const getCartProducts = async () =&amp;gt; {
    const response = await fetch('https://fakestoreapi.com/products');
    const products = await response.json();


    return products;
};

const showCartProducts = async () =&amp;gt; {
    
   const cartContainer = document.querySelector('.cart_container');
   let products = [];
   
   try {
        products = await getCartProducts();
   } catch (e) {
    console.log(e)
   }

    let cartProductsID = (JSON.parse(localStorage.getItem('cartArray'))) || [];

    
        const currentCartProducts = products.filter(product =&amp;gt; cartProductsID.some(item =&amp;gt; item == product.id)).map((product) =&amp;gt; {
            cartContainer.innerHTML += `
            &amp;lt;div class=&quot;cart_container--product&quot;&amp;gt;
                &amp;lt;div class=&quot;cart_product--image&quot; &amp;gt;
                &amp;lt;img src=${product.image} data-image=${product.id}&amp;gt;
                &amp;lt;/div&amp;gt;
                &amp;lt;p class=&quot;cart_product--desc&quot;&amp;gt;${product.title}&amp;lt;/p&amp;gt;
                &amp;lt;div class=&quot;cart_product-price--quantinity&quot;&amp;gt;
                &amp;lt;p data-price=${product.price} data-price-id=${product.id}&amp;gt;${product.price}$&amp;lt;/p&amp;gt;
                &amp;lt;select class=&quot;cart_select&quot; data-id=${product.id}&amp;gt;
                &amp;lt;option value=&quot;1&quot;&amp;gt;1&amp;lt;/option&amp;gt;
                &amp;lt;option value=&quot;2&quot;&amp;gt;2&amp;lt;/option&amp;gt;
                &amp;lt;option value=&quot;3&quot;&amp;gt;3&amp;lt;/option&amp;gt;
                &amp;lt;option value=&quot;4&quot;&amp;gt;4&amp;lt;/option&amp;gt;
                &amp;lt;option value=&quot;5&quot;&amp;gt;5&amp;lt;/option&amp;gt;
                &amp;lt;/select&amp;gt;
                &amp;lt;i class=&quot;fa-solid fa-trash&quot; data-delete=${product.id}&amp;gt;&amp;lt;/i&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;div&amp;gt;`;
        })

    const deleteProduct = (e) =&amp;gt; {
        let deleteIconId = e.target.getAttribute(&quot;data-delete&quot;);
        let deleteCurrentProduct = cartProductsID.filter((product) =&amp;gt; { return product !== deleteIconId });
        if (deleteCurrentProduct) {
            cartProductsID = deleteCurrentProduct;
            localStorage.setItem('cartArray', JSON.stringify(deleteCurrentProduct));
            cartContainer.innerHTML = '';
            showCartProducts();
            changeValueOfCounter();
        }
    }

    const cartProductDetails = document.querySelectorAll('.cart_product--image &amp;gt; img');
    
    const showProductDetails = (e) =&amp;gt; {
        let productImage = e.target.getAttribute(&quot;data-image&quot;);
        let url = `/product-details.html?id=${productImage}`;
        window.location.href = url;
    }
    

    cartProductDetails.forEach((item) =&amp;gt; item.addEventListener('click', showProductDetails));
    
    const deleteBtn = document.querySelectorAll('[data-delete]').forEach((btn) =&amp;gt; {
        btn.addEventListener('click', deleteProduct);
    });

    const pricesAndIdObjArray = [];

    const productPricesAndId = document.querySelectorAll('[data-price][data-price-id]').forEach((item) =&amp;gt; {
        pricesAndIdObjArray.push({itemId : item.getAttribute('data-price-id'), itemPrice : item.getAttribute('data-price')});
    });

    const quantinitySelect = document.querySelectorAll('.cart_select');

    const totalPriceOfCartItems = document.querySelector(&quot;.total_price &amp;gt; p&quot;);

 
    const productPrices = [];
    
    const productPricesData = document.querySelectorAll('[data-price]').forEach((price) =&amp;gt; {
        productPrices.push(price.getAttribute('data-price'));
    });
    const pricesToNum = productPrices.map((price) =&amp;gt; {return price = +price});

    let sum = 0;
    const sumPrices = () =&amp;gt; {
        pricesToNum.forEach((item) =&amp;gt; {return sum+=item});
        totalPriceOfCartItems.innerHTML = `${sum}$`;
    }
    sumPrices()
    

    const selectQuantinity = (e) =&amp;gt; {
        let option = e.target.value;
        let selectId = e.target.getAttribute(&quot;data-id&quot;);
        let currentSelect = e.target.previousElementSibling;
        const matchIdSelect = pricesAndIdObjArray.filter((item) =&amp;gt; {return item.itemId === selectId});
        if (matchIdSelect) {
            const currentPrice = matchIdSelect.map((item) =&amp;gt; {return item.itemPrice * option});
            currentSelect.innerHTML = `${currentPrice}$`;
        }
      
    }
    quantinitySelect.forEach((option) =&amp;gt; {option.addEventListener('click', selectQuantinity)});
 }



document.addEventListener('DOMContentLoaded', showCartProducts);&lt;/pre&gt;



&lt;p&gt;Miłego wieczoru :)&amp;nbsp;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/581384/shopping-cart-zmiana-ceny-za-caly-koszyk</guid>
<pubDate>Fri, 03 Mar 2023 21:05:48 +0000</pubDate>
</item>
</channel>
</rss>