#php #html #scroll
#php #HTML #прокрутка
Вопрос:
Я создаю shopping kart на PHP. В данный момент пользователь нажимает кнопку «Добавить в корзину», чтобы добавить товар. затем эта кнопка запускает отдельный php-скрипт для сохранения товара в корзине, после чего пользователь возвращается на страницу покупок. все, что пользователь видит, это прокрутку страницы обратно до верхней части экрана.
Есть ли в php способ, с помощью которого я могу сохранить, как далеко страница прокрутилась вниз, а затем установить это при перезагрузке страницы, чтобы пользователю казалось, что страница не изменилась… Спасибо
Ответ №1:
Должно выполняться в браузере с использованием некоторого javascript. получите позицию перед отправкой от var top = window.scrollTop
и передайте ее на сервер (или сохраните в cookie), затем во время загрузки вызовите window.scrollTo(top)
, чтобы восстановить позицию.
Ответ №2:
Судя по всему, я думаю, вам было бы лучше использовать AJAX для отправки товара в корзину. Таким образом, пользователь нажимает на ссылку, и вы можете вывести небольшое сообщение, которое изменяет общую сумму корзины после ее сохранения, и пользователю не нужно полностью перезагружать страницу.
Если вы используете jQuery, должно сработать что-то вроде следующего: (Не тестировалось)
$('.add-to-cart').click(function(){
$.ajax({
url:'cart.php?product=' sku,
success:function(){
// Change the cart total and pop a message here
}
});
});
Ответ №3:
Без использования AJAX:
browse.php:
<form action="cart.php" method="POST">
<div id="product_12345">
<!-- Product Info -->
<button name="add_item" type="submit" value="12345">Add To Cart</button>
</div>
<div id="product_12346">
<!-- Product Info -->
<button name="add_item" type="submit" value="12346">Add To Cart</button>
</div>
</form>
cart.php:
<?php
if (isset($_POST['add_item'])) {
// code to add product to cart
header('Location: /browse.php#product_' (int)$_POST['add_item']);
}
?>