Skip to content

Instantly share code, notes, and snippets.

@PonomareVlad
Last active May 15, 2021 09:30
Show Gist options
  • Save PonomareVlad/9142a5c3a3461ec46607a50e6450a5d2 to your computer and use it in GitHub Desktop.
Save PonomareVlad/9142a5c3a3461ec46607a50e6450a5d2 to your computer and use it in GitHub Desktop.
Adding product to cart in PHP
// Шаг 1
// Выводим артикул (книга_id) в аттрибут value у кнопки
<button type="submit" id="hello" name="hello" value="$row[1]">КУПИТЬ</button>
// Шаг 2
// Если после клика на кнопку, пользователь должен сразу переместится на страницу корзины или оформления заказа,
// то можно просто обернуть кнопку в тег формы и указать для нее адрес страницы (скрипта) который примет данные о
// выбранном артикуле в GET или POST параметрах (получить их можно будет в переменной $_REQUEST['book_id'])
<form action="/order.php" method="POST">
<button type="submit" id="hello" name="book_id" value="$row[1]">КУПИТЬ</button>
</form>
// Шаг 3 (опционально)
// Если при клике по кнопке товар должен просто добавлятся в корзину, без перехода на другую страницу,
// то можно добавить небольшой код на JavaScript, который будет отправлять данные о выбранном товаре в фоновом запросе,
// на указанный вами скрипт (указанный код, нужно разместить один раз в конце страницы, перед закрывающим тегом </body>)
<script>
document.querySelectorAll(`button[name="book_id"]`).forEach(button => button.form.addEventListener('submit', async event => {
event.preventDefault();
let request = {},
form = event.target,
url = form.action,
data = [...new FormData(form).entries()],
params = new URLSearchParams(data);
if (form.method) request.method = form.method;
if (data) if (form.method.toLowerCase() === 'post') request.body = params; else
url = new URL('?' + params.toString(), url);
return await fetch(url, request).then(r => r.text()).then(console.debug);
}))
</script>
<?php
$hostname="localhost";
$username="root";
$password="";
$dbname="bookstore1";
$link = mysqli_connect($hostname, $username,
$password, $dbname)
or die("Ошибка " . mysqli_error($link));
mysqli_set_charset($link,'utf8');
error_reporting(0);
print<<< _HTML_
<head>
<link rel = "stylesheet" href = "IndexBookStyle.css">
<script scr = "BookStore.js"></script>
<script src="https://ajax.googleapis.com/.../jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<div class = "shapka">
<div class = "fotos" >
<script type="text/javascript">
var images = new Array();
var i = 0;
images[0] = './images/501.jpg';
images[1] = './images/502.jpg';
images[2] = './images/503.jpg';
function viewImages() {
document.getElementById("img_main").src =
images[i];
i++;
if (i == images.length) {
i = 0;
}
setTimeout("viewImages()",4000);
}
</script>
<img src="" id="img_main">
<script> viewImages(); </script>
</div>
<div class = "name"> Книгочтей </div>
</div>
<button id ="regis">
ЗАРЕГИСТРИРОВАТЬСЯ </button>
<script>
$('#regis').click(function()
{ $('#main').hide('slow', 'linear') })
$('#regis').click(function()
{ $('#registr').show('slow', 'linear') })
</script>
<div class ="left"></div>
<div class = "right"></div>
</body>
_HTML_;
$query = "SELECT DISTINCT автор
FROM книги ORDER BY автор ";
$result = $link->query($query);
if (!$result) die($link->error);
$rows = $result->num_rows;
echo '<div class = "otbor1"> АВТОРЫ';
echo '<div class = "otbor2">';
for ($i = 0 ; $i < $rows ; ++$i)
{
$result->data_seek($i); //выбор строки
$row = $result->fetch_row(); //получение строки
print<<< _HTML_
<div class = "otbor3">
$row[0]
</div>
_HTML_;
}
echo '</div>';
echo '</div>';
$query = "SELECT картинка, книга_id, автор, название,
жанр, издательство, город_издания, год_издания,
стоимость_продажи
FROM книги ";
$result = $link->query($query);
if (!$result) die($link->error);
$rows = $result->num_rows;
echo '<div class = "block" id ="main">';
for ($i = 0 ; $i < $rows ; ++$i)
{
$result->data_seek($i); //выбор строки
$row = $result->fetch_row(); //получение строки
print<<< _HTML_
<div class = "blocks">
<img src = $row[0] width = "200" height = "250">
<br> <br>
<em>Артикуль:</em> $row[1] <br>
<em>Автор:</em> $row[2] <br>
<em>Название:</em> $row[3] <br>
<em>Жанр:</em> $row[4] <br>
<em>Издательство:</em> $row[5] <br>
<em>Город издания:</em> $row[6] <br>
<em>Год издания:</em> $row[7] <br>
<em>Стоимость:</em> $row[8] <br>
<form action="IndexStore.php" method="POST">
<button type ="submit" id ="hello" name ="book_id"
value ="$row[1]" > КУПИТЬ </button>
</form>
</div>
_HTML_;
}
?>
<script>
document.querySelectorAll(`button[name="book_id"]`).forEach(button => button.form.addEventListener('submit', async event => {
event.preventDefault();
let request = {},
form = event.target,
url = form.action,
data = [...new FormData(form).entries()],
params = new URLSearchParams(data);
if (form.method) request.method = form.method;
if (data) if (form.method.toLowerCase() === 'post') request.body = params; else
url = new URL('?' + params.toString(), url);
return await fetch(url, request).then(r => r.text()).then(console.debug);
}))
</script>
<?php
echo '</div>';
echo '<div id ="registr" class ="block">';
print<<< _HTML_
<form method="POST" action = "IndexStore.php" >
Фамилия: <input type = "text" name ="name1" > <br>
Пароль: <input type = "text" name ="password1"/> <br>
<input type = "submit" class="button1"
name="submit1" value = "Зарегистрироваться"> <br>
</form>
_HTML_;
echo '</div>';
$name = $_GET["name1"];
$password = $_GET['password1'];
$submit = $_GET['submit1'];
$queryy = "INSERT INTO покупатели (фамилия, пароль)
VALUES ('{$name}', '{$password}')";
$result = $link->query($queryy);
/*echo "$name, $password"; echo "<br>";*/
$query = "SELECT покупатель_id
FROM покупатели WHERE фамилия ='$name1'";
$result = $link->query($query);
if (!$result) die($link->error);
$result->data_seek(0); //выбор строки
$row = $result->fetch_row(); //получение строки
/*echo $row[0]; echo "<br>";*/
$pokupatel = $row[0];
echo "$pokupatel";
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment