Hallo Zusammen,
ich möchte dieses Feature auch bei uns im Shop verwenden.
Und zwar habe ich das Skript soweit erweitert, dass die aktuelle Ansicht in der PHP-Session gespeichert wird.
meine js-Datei sieht nun so aus:
$(document).ready(function(){
$(".prod_wrapper").mouseenter(function () {
$(this).css("background-color","#fafafa");
});
$(".prod_wrapper").mouseleave(function () {
$(this).css("background-color","#eaeaea");
});
$(".prod_toggledisplay").click(function () {
if ($('.prod_wrapper').is('.prod_wrapper_box')) {
//remove stuff
$('.prod_wrapper').fadeOut('fast', function() {
// Animation complete.
$('.prod_wrapper').removeClass('prod_wrapper_box');
$('.prod_title').removeClass('prod_title_box');
$('.prod_title2').removeClass('prod_title_box2');
$('.prod_shippingtime').removeClass('prod_shippingtime_box');
$('.prod_image_border').removeClass('prod_image_border_box');
$('.prod_image').removeClass('prod_image_box');
$('.prod_shortdesc').removeClass('prod_shortdesc_box');
$('.prod_price').removeClass('prod_price_box');
$('.prod_tax_vpe').removeClass('prod_tax_vpe_box');
$('.prod_buttons').removeClass('prod_buttons_box');
$('.prod_buynow').removeClass('prod_buynow_box');
$('.prod_out').removeClass('prod_out_box');
$('.prod_break').removeClass('prod_break_box');
$('.prod_noimage').removeClass('prod_noimage_box');
$('.prod_ampel').removeClass('prod_ampel_box');
$('.prod_rabatt').removeClass('prod_rabatt_box');
$('.prod_special').removeClass('prod_special_box');
$('.prod_toggledisplay').html("Ansicht: Galerie");
$('.prod_wrapper').fadeIn("fast");
});
// Store Value
$.post("jq_session.php", {action: "write", listView: "0"}, function(data){ });
}
else {
//add stuff
$('.prod_wrapper').fadeOut('fast', function() {
// Animation complete.
$('.prod_wrapper').addClass('prod_wrapper_box');
$('.prod_title').addClass('prod_title_box');
$('.prod_title2').addClass('prod_title_box2');
$('.prod_shippingtime').addClass('prod_shippingtime_box');
$('.prod_image_border').addClass('prod_image_border_box');
$('.prod_image').addClass('prod_image_box');
$('.prod_shortdesc').addClass('prod_shortdesc_box');
$('.prod_price').addClass('prod_price_box');
$('.prod_tax_vpe').addClass('prod_tax_vpe_box');
$('.prod_buttons').addClass('prod_buttons_box');
$('.prod_buynow').addClass('prod_buynow_box');
$('.prod_out').addClass('prod_out_box');
$('.prod_break').addClass('prod_break_box');
$('.prod_noimage').addClass('prod_noimage_box');
$('.prod_ampel').addClass('prod_ampel_box');
$('.prod_rabatt').addClass('prod_rabatt_box');
$('.prod_special').addClass('prod_special_box');
$('.prod_toggledisplay').html("Ansicht: Liste");
$('.prod_wrapper').fadeIn("fast");
});
// Store Value
$.post("jq_session.php", {action: "write", listView: "1"}, function(data){ });
}
});
// Use Stored Value
$.post("jq_session.php", {action: "read"}, function(data){
if(data == "1")
{
$(".prod_toggledisplay").click()
}
});
});
und die neue jq_session.php (im shop-root) dann so:
<?phpsession_start();if (isset($_POST['action'])){ if ($_POST['action'] == 'read') { if (isset($_SESSION['listView'])) { echo $_SESSION['listView']; } else { echo "0"; } } else if ($_POST['action'] == 'write') { $_SESSION['listView'] = $_POST['listView']; } else { echo "0"; }} else { echo "0";}?> Das ganze klappt auch schon, nur einen unschönen Effekt hat es noch und zwar nehmen wir an der Shop-Benutzer hat die Galerie-Ansicht gewählt und wählt jetzt eine andere Kategorie, dann sieht man kurz vorher noch die Listenansicht und danach wird erst auf die Galerie-Ansicht geswitcht.
Hat jemand eine Idee wie man es hinbekommt dass die Kategorie sofort in der Galerie-Ansicht geladen wird oder dass der Benutzer es zumindest nicht sieht?
EDIT: Ich hab's hingekriegt, die Lösung poste ich etwas später.
Viele Grüße
TechWay