Jump to content
xt:Commerce Community Forum

Warenkorb um einen Button erweitern...


aschieferbein

Recommended Posts

Hi liebes Commerce Formum,

ich habe mal wieder eine Frage. Ich würde gern den Standartwarenkorb um einen Button erweitern, mit dem man via click die jeweilige Anzahl der hinterlegten Produkte erhöhen kann. Die aktuelle Lösung, mit dem Input Element und Aktualisieren finde ich persönlich nicht optimal gelöst..

Das ganze würde ich gern via JQuery lösen.. Ich habe mir mich bisher aber nur mehr oder weniger mit JQuery Animationen beschäftigt, bin also alles andere als ein Profi in dem Bereich.

Was ich bisher rausgefunden habe, wenn ich mir die cart.html anschaue und die cart.php dann weis ich, das alle relavanten Variablen des Warenkorbs im $cart_data Objekt gespeichert werden.


form type=hidden name=products_key[] value=$data.products_key

$data.products_key = die Produktanzahl

products_key[] <-- ist das der Produktkey in einem Array

Wenn ich jetzt zum Beispiel einen Button hinzufüge, diesem mittels JQuery einen Click Event zuweise, wie kann ich dann diese Smarty Variable $data.products_key verringern!? Ich habe leider nicht so viel Erfahrung mit Smarty Variablen. Ausgeben ist ja einfach, aber korrekt abändern schon was anderes.

Vielleicht kann mir ja jemand einen Tip geben wie ich das bewerkstelligen kann? Die Lösungen hier um Forum habe ich schon angeschaut, teilweise alte XT Versionen (ich nutze 4.1) und größtensteils nicht mit JQuery gelöst.. Ich will ein nachladen bei einer Anzahlveränderung gern umgehen und soweit mir das bekannt ist, läst sich das bei {form} Elementen nicht umgehen!? Right?

Link to comment
Share on other sites

Gut, ich bin einen Schritt weiter...

Buttons habe ich jetzt, Zugriff via JQuery funktioniert auch, verändern der Werte auch.. Und jetzt müsste ich ja, die abgeänderten Werte via AJAX Request an den Server übergeben korrekt!?

Mein "Code" bisher...


	/*ADD_BUTTON*/

	$("ul.change_quantity").find("li:first").children("input").click(function(){

		$(this).css("background-color", "blue");

		$(this).parent().parent().find("li:last").css("border", "1px solid green");


		/*holt den Value aus dem Inputfeld*/

		count_prod = $(this).parent().parent().find("li:last").children("input").val();

		count_prod++;

		$(this).parent().parent().find("li:last").children("input").val(count_prod, function (){

			$("ul.change_quantity").load('someFile.php',{'products_key[], count_prod': 'someValue'});

		});

	});


	/*REM_BUTTON*/

	$("ul.change_quantity").find("li:first").next().children("input").click(function(){

		$(this).css("background-color", "red");

		$(this).parent().parent().find("li:last").css("border", "1px solid green");

		count_prod = $(this).parent().parent().find("li:last").children("input").val()

		if(count_prod <= 0){

				alert("keine Produkte mehr vorhanden")

			} else { count_prod--; }


		$(this).parent().parent().find("li:last").children("input").val(count_prod);


	});

Und die Buttons in einer Liste...

<ul class="change_quantity">

<li><input name="add_but" type="button" value="+"/></li>

<li><input name="rem_but" type="button" value="-"/></li>

<li><input name="prod_count" type="text"  value="{$data.products_quantity}" /></li>	 

</ul>

Link to comment
Share on other sites

Fazinierend...

Gut ich versuche es noch mal, wenn ich es hinbekomme die Daten so zu manipulieren wie ich mir das vorstelle, in welcher Form soll ich dann z.B. die {$data.products_quantity} übertragen? Kann ich das Warenkorb Forumal mit der ID cartform direkt via .serialize() mit JQuery übertragen, oder ist es ratsamer die nur die geänderten Werte (z.b. von einem Produkt die ID und die Quan)??

Ich geb dir Hoffnung nicht auf, das ich vielleicht noch eine Antwort erhalte.. :)

mfG, Andy..

Link to comment
Share on other sites

  • 2 months later...

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...