Bonjour à tous j'ai un petit souci que je ne comprends pas
donc en faite je programme un panier qui est droppable en jquery
le produit s'ajoute bien dans le panier avec la quantité et le prix.
quand je remet le même produit, la quantité augmente de 1 et le prix est multiplié par la quantité
rien de bien magique
le problème c'est quand je rajoute un autre produit, il se met en dessous du premier mais les prix du premier produit change et est égal au prix du 2eme
et le code javascript est généré en php pour compliquer la tâche
Le problème avec la variable :
mais quand je fais ça, ça m'affiche les prix mais ça remplace le prix de toutes mes div
j'ai le même problème avec le replaceWith
Bref en gros jvex avoir la qte de la div ayant l'id pain au chocolat quoi
Merci !
Modifié par delsuza (03 Apr 2011 - 20:21)

donc en faite je programme un panier qui est droppable en jquery
le produit s'ajoute bien dans le panier avec la quantité et le prix.
quand je remet le même produit, la quantité augmente de 1 et le prix est multiplié par la quantité
rien de bien magique

le problème c'est quand je rajoute un autre produit, il se met en dessous du premier mais les prix du premier produit change et est égal au prix du 2eme

et le code javascript est généré en php pour compliquer la tâche

<div id="panier" class="grid_3">
<div id="content_panier">
<div id="panier_products" >
<div class="placeholder"><div id="show_span">Ajouter vos achats ici</div></div>
</div>
<div id="panier_commande">
</div>
</div>
</div>
Le problème avec la variable :
//c'est la que ça pose probleme je n'arrive pas à prendre la qte de la div ayant l'id voulu
var qte = $(".placeholder #"+lib).find(\'span.qte\').html();
alert(qte); //il renvoie null
mais quand je fais ça, ça m'affiche les prix mais ça remplace le prix de toutes mes div
j'ai le même problème avec le replaceWith

$data['panier'] = '
//Div contenant le produit
$( ".one_product").draggable({
helper: "clone",
revert: true,
});
//Div du panier droppable
$( "#panier,#panier_products .placeholder" ).droppable({
activeClass: "",
hoverClass: "ui-state-hover",
accept: ":not(.ui-sortable-helper)",
drop: function( event, ui ) {
//on récup le prix du produit de la div draggable
var price= ui.draggable.find(".prixprod").html();
//on récup le libellé du produit de la div draggable
var lib = ui.draggable.find(".libprod").html();
var checkdiv = false;
var test = null;
//Array contenant les lib
var index = [];
//Pour chaque div du panier
$(".placeholder div").each(function(e,n){
//on récupére l\'id
index[e] = $(this).attr("id");
//Si l'id de la div correspond au lib de l'element draggable on retourne false pour arreter le each
if(index[e] == lib){
checkdiv = true;
return false;
}else{
checkdiv = false;
return true;
}
test = null;
});
//Si le produit existe déjà dans le panier alors on rajoute qte+1 et prix*qte
if(checkdiv == true){
//on récup la structure du panier pour pas s'y perdre
var dom = $(".placeholder").html();
alert(dom);
// ex : <div id="Pain au chocolat">x<span class="qte">1</span> <span>Pain au
// chocolat</span><span class="prixprod"> 0.70</span></div>
//c'est la que ça pose probleme je n'arrive pas à prendre la qte de la div ayant l'id voulu
var qte = $(".placeholder #"+lib).find(\'span.qte\').html();
alert(qte); //il renvoie null
if(qte == null || qte >= 1 ){
qte = parseInt(qte) +1;// qte renvoie NaN donc probleme pour calculer le prix et la qte [smile]
$(".placeholder span.qte").replaceWith("<span class=\'qte\'>"+qte+"</span>");
var prix = parseFloat(price) * parseFloat(qte) ;
prix = Math.round (prix*100) / 100;
$(".placeholder span.prixprod").replaceWith(" <span class=\'prixprod\'>"+prix+"</span>");
}
}else{
$(".placeholder #show_span").remove();
$( "<div id=\'"+lib+"\'></div>" ).html( "x<span class=\'qte\'>1</span> <span >"+lib+"</span><span class=\'prixprod\'>"+price+"</span>" ).appendTo( ".placeholder" );
}
}
});
';
Bref en gros jvex avoir la qte de la div ayant l'id pain au chocolat quoi

Merci !

Modifié par delsuza (03 Apr 2011 - 20:21)