У меня возникла проблема, из-за которой я не могу удалить свои товары из корзины. Всякий раз, когда я пытаюсь это сделать, возникает ошибка с именем «Требуется идентификатор параметра POST».
Напротив, он на удивление работает с добавлением товаров в корзину. Это сценарий, который я использую для отображения товаров в корзине и удаления:
<div class="container">
<?php
foreach(Cart::GetRooms() as $room) {
?>
<div>
<div class="media">
<img class="align-self-start mr-3" src="<?=$room->GetData()["icon_url"]?>" alt="Room icon" width="200px">
<div class="media-body">
<h5 class="mb-0"><?=$room->GetData()["title"]?></h5>
<div class="clearfix">
<p>Cena: <span class="text-success font-weight-bold"><?=$room->GetData()["price"]?> <?=SHOP_CURRENCY?></span></p>
<form method="post" action="/api/cart/removeItem.php">
<input type="hidden" name="room_id" value="<?=$room->GetData()["id"]?>" />
<button class="btn btn-primary" type="submit">X</button>
</form>
</div>
</div>
</div>
</div>
<?php
}
?>
Это сценарий, который должен удалять товары из корзины
<?php
require_once "../../settings.php";
$id = POST("id", true);
Cart::RemoveFromCart((int) $id);
http_response_code(302);
header("Location: /cart.php");
public static function RemoveFromCart(int $id) : bool {
$db = MysqliDb::getInstance();
$db->where("id", $id);
$db->delete("cart");
return true;
}
и это функция POST, которую я написал сам на случай, если она понадобится
function POST(string $key, bool $required=false, bool $secure=true) {
if(!isset($_POST[$key])) {
if($required) {
exit("POST parameter $key is required");
}
else {
}
}
$return_val = $_POST[$key];
if($secure) {
$return_val = htmlentities($return_val);
}
return $return_val;
}