per JavaScript dem Listing Artikel hinzufügen bzw. ersetzen.

Ich möchte per JavaScript die im Listing angezeigten Artikel austauschen gegen Andere (definierit über Artikel-IDs). Ähnlich dem Infinite Scrolling. Die Artikelliste kann dabei entweder direkt in JavaScript als ID-Array bereitgestellt werden oder als Frontend-Controller /MyPlugin/getArticlesListing?bId=10&pId=3.

Gäbe es da schon was nettes was man benutzen könnte? Dem swInfiniteScroller-Plugin kann ich leider nicht sagen: nimm diese Liste an Artikeln, sondern immer nur ganze Kategorien.

 

Hintergrund: Ich hab ein Emotion-Widget welches “Katalogseiten” anzeigt. Man kann durch diese Seite Blättern und ich möchte, dass sich dabei das Listing unten in die Artikel ändert die auf dieser Seite gerade sind. Sprich Seite 30 -> [‘12345’, ‘12346’, ‘12348’ …] und Seite 32 [‘12399’, ‘14522’ …]. Es gibt auch feste Urls die immer zum gleich Listing führen so dass ich dass über ein neuladen der Seite erreichen könnte, dies möchte ich aber vermeiden weil sonst jeder Katalogseitenwechsel einen kompletten Page-View mit sich zieht.

Also ich hab jetzt mal per Frontend-Controller ne Action erstellt die wie Listing::ajaxListingAction mit das gerenderte Html per ajax zurück gibt (so wie es auch beim infiniteScroller funktioniert. Jetzt müsste ich nurnoch per jQuery das listing leeren und den per ajax request erhaltenen Inhalt appenden. Sollte funktionieren :) 

Moin @langnickel‍,

die Artikel-Boxen befinden sich ja in einem Div mit der Klasse “listing”.
Ergo müsstest du von deiner Action HTML-Code zurückbekommen, der alle Artikel-Boxen beinhaltet, und ersetzt das Listing dann wiefolgt:

$('.listing').html(template);

Hilft dir das weiter?

Gruß,
Patrick  Shopware

Jupp, genau so habs ichs gemacht, bzw erst empty() dann append() mit nem loading indicator. Nun muss ich nurnoch das Problem mit der Filterbox lösen damit die auch über die neuen Produkte bescheid weis