Bonjour à tous,
Je bloque actuellement sur un problème, je n'arrive pas à trouver la solution. J'ai une page de produit faite avec le système de cart que l'on peut trouver sur Bootstrap.
J'arrive à ajouter un produit au panier, de ce côté la, tout est fonctionnel. J'aimerai désormais que quand le produit est ajouté, la cart soit désactivée afin qu'on ne puisse plus ajouter le même produit dans le panier. Je suis bloqué là-dessus depuis hier matin, c'est vous dire si je commence à sérieusement déprimer ...
Voici le code que j'ai produit jusqu'à maintenant :
Le formulaire :
{% for row in products|batch(4) %}
<div class="card-deck">
{% for product in row %}
<div class="card mb-4">
<img src="{{ product.image_file }}" class="card-img-top" style="max-height: 250px;" alt=""/>
<div class="card-body">
<h5 class="card-title">{{ product.name }}</h5>
<p class="card-text">
{{ product.description }}
</p>
</div>
<div class="card-footer text-center">
{{ form.start({action:generate('technicien_carts_add')}) }}
{{ tag.input({type:'hidden', name:'product_id', value: product.id}) }}
{{ tag.input({type:'number', name:'quantity', class:'d-inline w-50'}) }}
<button type="submit" name="remove" class="btn btn-primary"><i class="fas fa-cart-plus"></i></button>
{{ form.end() }}
</div>
</div>
{% endfor %}
Le traitement côté controller de l'ajout dans le panier (sous forme de tableau serializé :
public function addItem()
{
$cartsTable = new CartsTable();
$carts = new Carts();
$cartUser = $this->getCartUser(Auth::getUserId());
$item = [
$_POST['product_id']."a" => [
"quantity" => $_POST['quantity']
]
];
if (array_key_exists($_POST['product_id']."a", $cartUser)){
unset($cartUser[$_POST['product_id']."a"]);
}
$items = array_merge($cartUser, $item);
$carts
->setUsers_Id(Auth::getUserId())
->setItems(serialize($items));
if(isset($cartUser) and empty($cartUser)){
$cartsTable->insert($carts);
} else {
$cartsTable->updateCart($carts);
}
$this->flash->success('Le produit à bien été ajouté au panier.', $this->router->url("technicien_order"));
}
Je vous remercie d'avance pour votre aide, j'en ai bien besoin ...