如何向我的购物车添加额外的商品?
How do I add an additional item to my cart?
使用我当前的代码,我添加的项目在我的本地存储中,但它只显示我的购物篮中的一个
我不知道如何解决我的问题,你有什么想法吗?
function displayPanier(product) {
function getTeddies() {
let teddiesPanier = JSON.parse(localStorage.getItem("basketProducts"));
return teddiesPanier;
}
let teddiesPanier = getTeddies();
//faire une boucle pour iterrer sur les produits dans le local storage
function panierTeddies (){
const panierStorage = document.getElementById("test")
panierStorage.innerHTML = `
<table class="table bg-light">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Photo</th>
<th scope="col">Nom</th>
<th scope="col">Prix</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td><img id=panierImg class="img-fluid" src="${teddiesPanier[0].imageUrl}" style="max-width: 40px;"></td>
<td><h5 class="font card-title">${teddiesPanier[0].name}</h5></td>
<td><p class="card-text prix">${teddiesPanier[0].price / 100}€</p></td>
</tr>
</tbody>
</table>
<td><button onclick="removeProduct('${product}')" class="btn btn-primary">Supprimer</button></td>
`
}
console.table(teddiesPanier)
panierTeddies();
}
screenshhot basket with localstroage in console
好吧,您只使用 teddiesPanier[0]
,它是数组的第一个元素,因此显然您不会显示其他项目(如果有的话)。你应该做一个循环来生成 tr
范围或其他东西......
这正是您在评论中用漂亮的法语写的,应该完全用英语写,连同您所有的变量和函数名称!
它只显示 (1) 个项目,因为您没有遍历 localStorage 中的项目数组。例如${teddiesPanier[0].name}.
您可以将代码修改为:
panierStorage.innerHTML = `
<table class="table bg-light">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Photo</th>
<th scope="col">Nom</th>
<th scope="col">Prix</th>
</tr>
</thead>
<tbody>`;
for (var i=1; i < teddiesPanier.length; i++) {
panierStorage.innerHTML += `
<tr>
<th scope="row">${i}</th>
<td><img id=panierImg class="img-fluid" src="${teddiesPanier[i].imageUrl}" style="max-width: 40px;"></td>
<td><h5 class="font card-title">${teddiesPanier[i].name}</h5></td>
<td><p class="card-text prix">${teddiesPanier[i].price / 100}€</p></td>
</tr>
`;
}
panierStorage.innerHTML += `<td><button onclick="removeProduct('${product}')" class="btn btn-primary">Supprimer</button></td></tbody>
</table>`;
使用我当前的代码,我添加的项目在我的本地存储中,但它只显示我的购物篮中的一个
我不知道如何解决我的问题,你有什么想法吗?
function displayPanier(product) {
function getTeddies() {
let teddiesPanier = JSON.parse(localStorage.getItem("basketProducts"));
return teddiesPanier;
}
let teddiesPanier = getTeddies();
//faire une boucle pour iterrer sur les produits dans le local storage
function panierTeddies (){
const panierStorage = document.getElementById("test")
panierStorage.innerHTML = `
<table class="table bg-light">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Photo</th>
<th scope="col">Nom</th>
<th scope="col">Prix</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td><img id=panierImg class="img-fluid" src="${teddiesPanier[0].imageUrl}" style="max-width: 40px;"></td>
<td><h5 class="font card-title">${teddiesPanier[0].name}</h5></td>
<td><p class="card-text prix">${teddiesPanier[0].price / 100}€</p></td>
</tr>
</tbody>
</table>
<td><button onclick="removeProduct('${product}')" class="btn btn-primary">Supprimer</button></td>
`
}
console.table(teddiesPanier)
panierTeddies();
}
screenshhot basket with localstroage in console
好吧,您只使用 teddiesPanier[0]
,它是数组的第一个元素,因此显然您不会显示其他项目(如果有的话)。你应该做一个循环来生成 tr
范围或其他东西......
这正是您在评论中用漂亮的法语写的,应该完全用英语写,连同您所有的变量和函数名称!
它只显示 (1) 个项目,因为您没有遍历 localStorage 中的项目数组。例如${teddiesPanier[0].name}.
您可以将代码修改为:
panierStorage.innerHTML = `
<table class="table bg-light">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Photo</th>
<th scope="col">Nom</th>
<th scope="col">Prix</th>
</tr>
</thead>
<tbody>`;
for (var i=1; i < teddiesPanier.length; i++) {
panierStorage.innerHTML += `
<tr>
<th scope="row">${i}</th>
<td><img id=panierImg class="img-fluid" src="${teddiesPanier[i].imageUrl}" style="max-width: 40px;"></td>
<td><h5 class="font card-title">${teddiesPanier[i].name}</h5></td>
<td><p class="card-text prix">${teddiesPanier[i].price / 100}€</p></td>
</tr>
`;
}
panierStorage.innerHTML += `<td><button onclick="removeProduct('${product}')" class="btn btn-primary">Supprimer</button></td></tbody>
</table>`;