В настоящее время я практикую php и хочу создать простое веб-приложение POS с системой инвентаризации. Однако я точно не знаю логики обработки самой POS-страницы (см. Пример снимка экрана ниже). Когда я нажимаю на элемент, как я могу получить продукт и опубликовать его в базе данных? Стоит ли хранить его по сессиям или как? Может ли кто-нибудь дать мне хотя бы подробное объяснение? Я попытался найти руководство по созданию динамического POS-терминала, но не видел его. Спасибо!
When I click an item, how should I be able to get the product and post it to the database?
В традиционном веб-приложении это обрабатывается через URL-адреса и параметры запроса. Когда вы генерируете HTML-код для создания кнопки, формы и т. д., URL-адрес, который он публикует, включает идентификатор базы данных вещь (в данном случае продукта), с которым вы хотите работать. В более современных приложениях, где действия запускаются javascript, которые публикуют URL-адреса, идентификатор часто кодируется в атрибуте данных. Что-то вроде этого.
<a href = "/foo.php?product_id=27" class = "btn">...</a>
<a href = "/foo/product/27" class = "btn">...</a>
<a href = "/foo" data-id = "27">...</a>
<form method = "POST" action = "/foo">
<button>Product Name</button>
<input type = "hidden" value = "27" name = "product_id">
</form>
Как указывает Квентин в комментариях ниже, использование реальных ссылок (как в приведенных выше примерах) может иметь множество негативных последствий для чего-то, что будет существовать в общедоступном Интернете. Обычно, если вы делаете запрос на изменение данных, вы делаете это с помощью запроса POST
через <form>
или javascript.
Здравствуйте, на самой странице POS, следует ли мне сохранять выбранные элементы в сеансе перед тем, как оформить заказ? Кроме того, каким должен быть подход, если я попытаюсь удалить выбранный элемент на странице POS?
да, обычно вы храните данные типа «Корзина» в сеансе посетителей / клиентов.
Не используйте ссылки! Ссылки делают запросы GET! GET-запросы должны быть безопасный. В конечном итоге это вызовет такие проблемы, как «Chrome заметил, что вы часто посещаете страницу« Добавить пиво в корзину », и поместил ее на свою домашнюю страницу… и автоматически получает регулярные обновления для хранения в кеше». Используйте запрос POST. Создайте его с помощью <form>
.
@nimmneun привет, не могли бы вы объяснить, как эти элементы будут установлены, когда я щелкаю элемент, а также сбрасываются, когда я пытаюсь их удалить?
Спасибо, @Quentin - ссылки имели наибольший смысл, чтобы донести идею "URL с параметрами", но вы абсолютно правы, запросы GET для чего-то, что могло бы изменить данные, - плохая новость.
@coderszx Это похоже на большой объем информации, который нужно передать в вопросе о переполнении стека - возможно, вы захотите найти учебник по Laravel или Symfony. Эти фреймворки созданы для создания приложений, которые вы описываете.
Лично я не думаю, что это отличный практический проект. никто не стал бы писать POS-систему на php (хорошо, кто-то мог бы, но это далеко не идеальный язык для этого)