Bonjour a tous
je souhaiterais encore un peu améliorer mon code et donc j'essaye de réaliser ma première condition en javascript
Mais bien entendu elle ne fonctionne pas
je souhaiterais que si le total de mon panier est égal a 0 que document.getElementById('nouveau_prix_total_modal').innerHTML =( ) soit vide
Mais malheureusement cela me retourne une erreur que j'ai du mal a comprendre
Uncaught SyntaxError: expected expression, got ')'
if (totalpanier = 0) {
document.getElementById('nouveau_prix_total_modal').innerHTML =( ) ;
} else {
document.getElementById('nouveau_prix_total_modal').innerHTML =((( (MonPanier.totalpanier()))) + Number(prix_choix_livraison) ).toFixed(2) ;
}
je suis allé voir sur cette page mais je ne vois pas trop le soucis
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Errors/Unexpected_token
var Livraison = 2;
// Comment affiche-t-on les prix du panier et du total
// Pour rappel, les prix des produits sont à modifier via les attributs HTML data-prix dans le fichier index.php
// 0 pour aficher aucune décimale : 19 euros
// 2 pour afficher deux décimales : 19.00 euros
var decimal = 2;
// Ne pas modifier la suite sauf si vous désirez modifier le code
//on construits la variable MonPanier
var MonPanier = (function() {
panier = [];
//on realise une function Item
function Item(nom, prix, quantite, url) {
this.nom = nom;
this.prix = prix;
this.quantite = quantite;
this.url = url;
console.log(url);
}
//on realise une function pour sauver le panier
function savepanier() {
sessionStorage.setItem('MonPanier', JSON.stringify(panier));
// console.log(setItem);
console.log(JSON.stringify(panier));
console.log(('MonPanier', JSON.stringify(panier)));
}
//on realise une function pour lire le panier
function loadpanier() {
panier = JSON.parse(sessionStorage.getItem('MonPanier'));
}
if (sessionStorage.getItem("MonPanier") != null) {
loadpanier();
}
var obj = {};
//objet pour ajouter produit panier
obj.ajouter_produit_dans_panier = function(nom, prix, quantite, url) {
for (var item in panier) {
if (panier[item].nom === nom) {
if (quantite) {
panier[item].quantite = Number(quantite);
} else {
panier[item].quantite++;
}
savepanier();
return;
}
}
var item = new Item(nom, prix, quantite, url);
panier.push(item);
savepanier();
}
//objet pour la quanditee
obj.setquantiteForItem = function(nom, quantite) {
for (var i in panier) {
if (panier[i].nom === nom) {
panier[i].quantite = quantite;
break;
}
}
};
//objet pour enlever le produit du panier
obj.enlever_produit_de_panier = function(nom) {
for (var item in panier) {
if (panier[item].nom === nom) {
panier[item].quantite--;
if (panier[item].quantite === 0) {
panier.splice(item, 1);
}
break;
}
}
savepanier();
}
//objet pour tout enlever du panier
obj.enlever_produit_de_panier_tous = function(nom) {
for (var item in panier) {
if (panier[item].nom === nom) {
panier.splice(item, 1);
break;
}
}
savepanier();
}
//objet vider le panier
obj.clearpanier = function() {
panier = [];
savepanier();
}
//objet pour le total de la quanditee
obj.totalquantite = function() {
var totalquantite = 0;
for (var item in panier) {
totalquantite += Number(panier[item].quantite);
}
return Number(totalquantite);
}
//objet pour le taotal du panier
obj.totalpanier = function() {
var totalpanier = 0;
for (var item in panier) {
totalpanier += panier[item].prix * panier[item].quantite;
}
return Number(totalpanier.toFixed(decimal));
}
//objet pour lister le panier
obj.listpanier = function() {
var panierCopy = [];
for (i in panier) {
item = panier[i];
itemCopy = {};
for (p in item) {
itemCopy[p] = item[p];
}
itemCopy.total = Number(item.prix * item.quantite).toFixed(decimal);
panierCopy.push(itemCopy)
}
return panierCopy;
}
return obj;
})();
//fin variable mon panier
//function qui change la quanditee
function changeQte(element) {
var qte = element.value;
var t = $(element);
var label = t.attr("aria-label");
$("[data-nom='" + label + "']").attr('data-qte', qte);
}
//pour ajouter au panier
$('.ajouter-panier').click(function(event) {
event.preventDefault();
var nom_option = "";
var prix_option = 0;
var url = $(this).data('url');
var option_checkbox = $(this).data('checkbox');
if (option_checkbox != "") {
var checkboxes = document.getElementsByClassName(option_checkbox);
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked == true) {
var nom_option = nom_option + " (" + $(checkboxes[i]).data('nom') + ")";
var prix_option = prix_option + Number($(checkboxes[i]).data('prix'));
}
}
}
if ($(this).data('select')) {
var nom = $(this).data('nom') + " (" + document.getElementById("" + $(this).data('select') + "").value + ")" + nom_option;
} else var nom = $(this).data('nom');
var prix = Number($(this).data('prix')) + (prix_option);
if ($(this).attr('data-qte')) {
var qte_option = $(this).attr('data-qte');
MonPanier.ajouter_produit_dans_panier(nom, prix, qte_option, url);
} else MonPanier.ajouter_produit_dans_panier(nom, prix, 1, url);
afficherpanier();
});
//pour vider el panier
$('.clear-panier').click(function() {
MonPanier.clearpanier();
afficherpanier();
});
//pour le choix de livraison
$('.choix_livraison').click(function() {
const cases = document.querySelectorAll('input[name="choix_livraison"]');
for (const x of cases) {
if (x.checked) {
afficherpanier();
}
}
});
//pour afficher le panier
function afficherpanier() {
var panierArray = MonPanier.listpanier();
var output = "";
var countart = 0;
var countart2 = 0;
var count = 0;
for (var i in panierArray) {
output += "<div class='row' style='border-style: ridge; border-width: 1px; border-color: #8ebf42; background-color: #d9d9d9;margin-bottom:5px;'>" +
"<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'><button class='btn btn-danger effacer-item' data-nom='" + panierArray[i].nom + "'>X</button></div>" +
"<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + " <a class='example-image-link' href='" + panierArray[i].url + "'data-lightbox='example-set'><img src="" style='width:100px;height:100px;'></a>" + "</div>" +
"<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + panierArray[i].nom + "</div>" +
"<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + panierArray[i].prix.toFixed(0) + " euro</div>" +
"<div class='form-inline col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'><div class='input-group'><button class='btn btn-primary moins-item' data-nom='" + panierArray[i].nom + "'>-</button>" +
"<input type='number' min='1' class='form-control item-quantite' style='width:55px !important' data-nom='" + panierArray[i].nom + "' value='" + panierArray[i].quantite + "'>" +
"<button class='btn btn-primary plus-item' data-nom='" + panierArray[i].nom + "'>+</button></div></div>" +
"<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + panierArray[i].total + " euros</div>" +
"</div>";
count++;
countart += panierArray[i].quantite; // somme des unités d'articles
countart2 = countart
}
$('.show-panier').html(output);
if (Livraison == 2) {
const cases = document.querySelectorAll('input[name="choix_livraison"]');
for (const x of cases) {
if (x.checked) {
let nom_choix_livraison = x.dataset.nom;
let prix_choix_livraison = x.value;
let prix_et_livraison = (((MonPanier.totalpanier()))) + Number(prix_choix_livraison);
document.getElementById('amount').value = prix_et_livraison;
$('.total-panier').html(prix_et_livraison.toFixed(decimal));
document.getElementById('livraison-detail').innerHTML = "(" + nom_choix_livraison + ")" + prix_choix_livraison + " euro(s)";
document.getElementById('nouveau_prix_total_haut').innerHTML = ((((MonPanier.totalpanier())))).toFixed(2);
//document.getElementById('nouveau_prix_total_modal').innerHTML =((( (MonPanier.totalpanier()))) + Number(prix_choix_livraison) ).toFixed(2) ;
//test de ma condition
if (totalpanier = 0) {
document.getElementById('nouveau_prix_total_modal').innerHTML =( ) ;
} else {
document.getElementById('nouveau_prix_total_modal').innerHTML =((( (MonPanier.totalpanier()))) + Number(prix_choix_livraison) ).toFixed(2) ;
}
document.getElementById("prix_depart_haut").innerHTML = MonPanier.totalpanier();
document.getElementById("prix_depart").innerHTML = MonPanier.totalpanier();
break;
}
}
}
$('.total-panier-modal').html(MonPanier.totalpanier());
$('.total-quantite').html(MonPanier.totalquantite());
if ((Qte_Minimum == 1) && (Math.sign(MonPanier.totalquantite() - Qte_Minimum_Valeur) == -1) && (MonPanier.totalquantite() != 0)) {
//document.getElementById('qte_minimum_report').innerHTML = txt_qte_minimum_bad;
} else if ((Qte_Minimum == 1) && ((Math.sign(MonPanier.totalquantite() - Qte_Minimum_Valeur) == 1) || (Math.sign(MonPanier.totalquantite() - Qte_Minimum_Valeur) == 0)) && (MonPanier.totalquantite() != 0)) {
//document.getElementById('qte_minimum_report').innerHTML = txt_qte_minimum_ok;
} else if (Qte_Minimum == 1) {
//document.getElementById('qte_minimum_report').innerHTML = txt_qte_minimum_defaut;
} else if (Qte_Minimum == 0) {
//document.getElementById('qte_minimum_report').innerHTML = "";
}
//document.getElementById('total_qte_haut').innerHTML = MonPanier.totalquantite();
document.getElementById('total_qte').innerHTML = MonPanier.totalquantite();
document.getElementById('total_qte_bas').innerHTML = MonPanier.totalquantite();
document.getElementById('total_qte_modal').innerHTML = MonPanier.totalquantite();
}
//pour tout effacer
$('.show-panier').on("click", ".effacer-item", function(event) {
var nom = $(this).data('nom')
MonPanier.enlever_produit_de_panier_tous(nom);
afficherpanier();
})
//moins un article
$('.show-panier').on("click", ".moins-item", function(event) {
var nom = $(this).data('nom')
MonPanier.enlever_produit_de_panier(nom);
afficherpanier();
})
//plus un article
$('.show-panier').on("click", ".plus-item", function(event) {
var nom = $(this).data('nom')
MonPanier.ajouter_produit_dans_panier(nom);
afficherpanier();
})
//changer un article
$('.show-panier').on("change", ".item-quantite", function(event) {
var nom = $(this).data('nom');
var quantite = Number($(this).val());
MonPanier.setquantiteForItem(nom, quantite);
afficherpanier();
});
afficherpanier();
Afficher la suite