fix(warenkorb-neu): Scrollposition ueber den Submit retten, Post-Redirect-Get nach Mengenaenderung
This commit is contained in:
@@ -64,6 +64,12 @@ class website_shoppingcart {
|
||||
exit;
|
||||
}
|
||||
}
|
||||
// Post-Redirect-Get fuer die neue Ansicht: nach Mengen-/Anmerkungsaenderung per GET neu
|
||||
// laden, sonst fragt ein Reload "Formular erneut senden" und schickt die Mengen doppelt.
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['cart_goto']) && isset($_GET['ansicht']) && $_GET['ansicht'] === 'neu') {
|
||||
header('Location: /Warenkorb/?ansicht=neu');
|
||||
exit;
|
||||
}
|
||||
|
||||
if (isset($_SESSION['customer_info']) && $_SESSION['customer_info']) {
|
||||
$this->layout_object->assign('customer_info', $_SESSION['customer_info']);
|
||||
|
||||
@@ -212,11 +212,18 @@ $(document).ready(function() {
|
||||
});
|
||||
return ok;
|
||||
}
|
||||
// Scrollposition ueber den Submit retten: ein POST rendert die Seite neu und der
|
||||
// Browser faengt oben an. Vor dem Absenden merken, nach dem Laden wiederherstellen.
|
||||
function absenden(ziel) {
|
||||
if (!mengenOk()) { return; }
|
||||
if (ziel === '') { try { sessionStorage.setItem('wk_scroll', String(window.scrollY || window.pageYOffset || 0)); } catch (e) {} }
|
||||
$('#cart_goto').val(ziel);
|
||||
$('#cart_form').submit();
|
||||
}
|
||||
try {
|
||||
var y = sessionStorage.getItem('wk_scroll');
|
||||
if (y !== null) { sessionStorage.removeItem('wk_scroll'); window.scrollTo(0, parseInt(y) || 0); }
|
||||
} catch (e) {}
|
||||
$('#update_cart').click(function(e) { e.preventDefault(); absenden(''); });
|
||||
$('#cashdesk_button').click(function(e) { e.preventDefault(); absenden('kasse'); });
|
||||
$('.express_start').click(function(e) { e.preventDefault(); absenden('express:' + $(this).data('module')); });
|
||||
|
||||
Reference in New Issue
Block a user