Bonjour, comme le dit le titre, je voudrais récupérer dans mon panier les produits que l'utilisateur veut y ajouter.
J'ai une recherche de produits en AJAX me permettant d'afficher les produits.
Pour le panier ne sachant pas comment en faire un j'ai cherché un autre poste sur ce forum et quelqu'un a partagé un panier qui a l'air très simple.
Mon soucis est que maintenant j'aimerais le lier à ma recherche de produits et au bouton '+' servant à ajouter à la commande.
Pour l'instant je n'y arrive pas.
Voici le panier en question :
<?php
// Création de la commande si n'existe pas dans la session de l'utilisateur
if (! isset($_SESSION['commande'])) $_SESSION['commande'] = array();
// Voici les données externes utilisées par le commande
$id_produit = isset($_GET['id_produit']) ? $_GET['id_produit'] : null;
$nom_produit = isset($_GET['nomProduit']) ? $_GET['nomProduit'] : null;
$prix_produit = isset($_GET['prixProduit']) ? $_GET['prixProduit'] : '?';
$qte_produit = isset($_GET['qte_produit']) ? $_GET['qte_produit'] : 1;
// Voici les traitements de la commande
if ($id_produit == null) echo 'Veuillez sélectionner un produit pour le mettre dans le commande!'; // Message si pas d'acticle sélectionné
else
if (isset($_GET['ajouter'])){ // Ajouter un nouvel produit
$_SESSION['commande'][$id_produit]['nom'] = $nom_produit;
$_SESSION['commande'][$id_produit]['prix'] = $prix_produit;
$_SESSION['commande'][$id_produit]['qte'] = $qte_produit;
}
else if (isset($_GET['modifier'])) $_SESSION['commande'][$id_produit]['qte'] = $qte_produit; // Modifier la quantité achetée
else if (isset($_GET['supprimer'])) unset($_SESSION['commande'][$id_produit]); // Supprimer un produit de la commande
// Voici l'affichage de la commande
echo '<h2>Contenu de votre commande</h2><ul>';
if (isset($_SESSION['commande']) && count($_SESSION['commande'])>0){
$total_commande = 0;
foreach($_SESSION['commande'] as $id_produit=>$produit_acheté){
// On affiche chaque ligne de la commande : nom, prix et quantité modifiable + 2 boutons : modifier la qté et supprimer l'produit
if (isset($produit_acheté['nom']) && isset($produit_acheté['prix']) && isset($produit_acheté['qte'])){
echo '<li><form>', $produit_acheté['nom'], ' (', number_format($produit_acheté['prix'], 2, ',', ' '), ' €) ',
'<input type="hidden" name="id_produit" value="', $id_produit , '" />
<br />Qté: <input type="text" name="qte_produit" value="', $produit_acheté['qte'] , '" />
<input type="submit" name="modifier" value="Nouvelle Qté" />
<input type="submit" name="supprimer" value="Supprimer" />
</form>
</li>';
// Calcule le prix total de la commande
$total_commande += $produit_acheté['prix'] * $produit_acheté['qte'];
}
}
echo '<hr><h3>Total: ', number_format($total_commande, 2, ',', ' '), ' €'; // Affiche le total de la commande
}
else { echo 'Votre commande est vide'; } // Message si le commande est vide
echo "</ul>";
?>
et voici mon formulaire où je souhaite ajouter les produits à ma commande :
<form method='GET' action='index.php?id_produit='>
<?php
while($row = $result->fetch_assoc())
{
$output .= '
<tr>
<td>'.$row["id_produit"].'</td>
<td>'.$row["nomProduit"].'</td>
<td>'.$row["nom"].'</td>
<td>'.$row["prixProduit"].'</td>
<td><input type="submit" name="ajouter['.$row['id_produit'].']" value="+"></td>
</tr>
';
}
Dans l'action du form j'ai essayé diverses choses mais sans réussite.
Merci à ceux qui prendront le temps de m'aider !
EDIT : quand je fais un test et que j'inscris dans l'URL la ligne suivante, le panier est totalement fonctionnel :
http://localhost/semaine4.2/index.php?i ... =1&ajouter
Bonne journée.
Bonjour, comme le dit le titre, je voudrais récupérer dans mon panier les produits que l'utilisateur veut y ajouter.
J'ai une recherche de produits en AJAX me permettant d'afficher les produits.
Pour le panier ne sachant pas comment en faire un j'ai cherché un autre poste sur ce forum et quelqu'un a partagé un panier qui a l'air très simple.
Mon soucis est que maintenant j'aimerais le lier à ma recherche de produits et au bouton '+' servant à ajouter à la commande.
Pour l'instant je n'y arrive pas.
Voici le panier en question :
[PHP]
<?php
// Création de la commande si n'existe pas dans la session de l'utilisateur
if (! isset($_SESSION['commande'])) $_SESSION['commande'] = array();
// Voici les données externes utilisées par le commande
$id_produit = isset($_GET['id_produit']) ? $_GET['id_produit'] : null;
$nom_produit = isset($_GET['nomProduit']) ? $_GET['nomProduit'] : null;
$prix_produit = isset($_GET['prixProduit']) ? $_GET['prixProduit'] : '?';
$qte_produit = isset($_GET['qte_produit']) ? $_GET['qte_produit'] : 1;
// Voici les traitements de la commande
if ($id_produit == null) echo 'Veuillez sélectionner un produit pour le mettre dans le commande!'; // Message si pas d'acticle sélectionné
else
if (isset($_GET['ajouter'])){ // Ajouter un nouvel produit
$_SESSION['commande'][$id_produit]['nom'] = $nom_produit;
$_SESSION['commande'][$id_produit]['prix'] = $prix_produit;
$_SESSION['commande'][$id_produit]['qte'] = $qte_produit;
}
else if (isset($_GET['modifier'])) $_SESSION['commande'][$id_produit]['qte'] = $qte_produit; // Modifier la quantité achetée
else if (isset($_GET['supprimer'])) unset($_SESSION['commande'][$id_produit]); // Supprimer un produit de la commande
// Voici l'affichage de la commande
echo '<h2>Contenu de votre commande</h2><ul>';
if (isset($_SESSION['commande']) && count($_SESSION['commande'])>0){
$total_commande = 0;
foreach($_SESSION['commande'] as $id_produit=>$produit_acheté){
// On affiche chaque ligne de la commande : nom, prix et quantité modifiable + 2 boutons : modifier la qté et supprimer l'produit
if (isset($produit_acheté['nom']) && isset($produit_acheté['prix']) && isset($produit_acheté['qte'])){
echo '<li><form>', $produit_acheté['nom'], ' (', number_format($produit_acheté['prix'], 2, ',', ' '), ' €) ',
'<input type="hidden" name="id_produit" value="', $id_produit , '" />
<br />Qté: <input type="text" name="qte_produit" value="', $produit_acheté['qte'] , '" />
<input type="submit" name="modifier" value="Nouvelle Qté" />
<input type="submit" name="supprimer" value="Supprimer" />
</form>
</li>';
// Calcule le prix total de la commande
$total_commande += $produit_acheté['prix'] * $produit_acheté['qte'];
}
}
echo '<hr><h3>Total: ', number_format($total_commande, 2, ',', ' '), ' €'; // Affiche le total de la commande
}
else { echo 'Votre commande est vide'; } // Message si le commande est vide
echo "</ul>";
?>
[/PHP]
et voici mon formulaire où je souhaite ajouter les produits à ma commande :
[PHP]
<form method='GET' action='index.php?id_produit='>
<?php
while($row = $result->fetch_assoc())
{
$output .= '
<tr>
<td>'.$row["id_produit"].'</td>
<td>'.$row["nomProduit"].'</td>
<td>'.$row["nom"].'</td>
<td>'.$row["prixProduit"].'</td>
<td><input type="submit" name="ajouter['.$row['id_produit'].']" value="+"></td>
</tr>
';
}
[/PHP]
Dans l'action du form j'ai essayé diverses choses mais sans réussite.
Merci à ceux qui prendront le temps de m'aider !
EDIT : quand je fais un test et que j'inscris dans l'URL la ligne suivante, le panier est totalement fonctionnel :
[url]http://localhost/semaine4.2/index.php?id_produit=9&nomProduit=Chaudiere%20en%20or&prixProduit=19990&qte_Produit=1&ajouter[/url]
Bonne journée.