Merci encore pour ton tuto Cyrano , ça m'a permis de résoudre bien des problèmes
Mais je bloque sur la fonction de modification des quantités dans le panier. Je pense qu'il y a un problème avec la fonction de vérification des produits présents, qui permet d'éviter les embrouilles avec la navigation par flèches et les rechargements impromtus...: je demande l'affichage de la qt dans une zone input et lorsque j'envoie le formulaire, la quantité redevient la quantité initiale... Ben oui.
J'y ai passé toute la journée hier, sans succès. A court d'aspirine, je vous envoie mon script pour que vous me le critiquiez: tout fonctionne sauf la partie if(isset($_POST("Modifier"))... Suit la méthode d'affichage, peut-être fautive aussi?
if(!isset($_SESSION['caddie']))
{
$_SESSION['caddie'] = array(
"session"=> session_id(),
"aujourdhui" => date("d-m-Y"),
"produit" => array(
"reference" => array(),
"quantite" => array(),
"prixunitaire" => array(),
"prixactuel" => array(),
"totalproduit" => array(),
"acompteproduit" => array(),
"soldeproduit" => array(),
),
"facture"=> array (
"total" => array(
"total" => array(),
"acompte" => array(),
"solde" => array(),
),
"clients" => array(
"nom" => array(),
"prenom" => array(),
"adresse" => array(),
"codepostal" => array(),
"batiment" => array(),
"etage" => array(),
"ville" => array(),
"pays" => array(),
"telephone" => array(),
"email" => array(),
)
)
);
}
require_once ('ref.php');
require_once ('refprod.php');
require_once ('deja.php');
// vérification de la présence du produit dans le panier//
if (isset($_POST["Commander"])){
if(!verif_panier($refprod))
{
array_push($_SESSION['caddie']['produit']['reference'], $refprod);
$qt = $_POST["quantite"];
array_push($_SESSION ['caddie']['produit']['quantite'], $qt);
require_once ('ac_px.php');
array_push($_SESSION['caddie']['produit']['prixunitaire'], $pu);
array_push($_SESSION['caddie']['produit']['prixactuel'], $pa);
require_once('montantprod.php');
$total_prod = total_prod();
array_push($_SESSION['caddie']['produit']['totalproduit'], $total_prod);
require_once('acompteprod.php');
$acompte_prod = acompte_prod();
array_push($_SESSION['caddie']['produit']['acompteproduit'], $acompte_prod);
require_once('soldeprod.php');
$solde_prod = solde_prod();
array_push($_SESSION['caddie']['produit']['soldeproduit'], $solde_prod);
}
}
if (isset($_POST["Modifier"])) {
require_once('verif_qt.php');
$refprod = $_SESSION['caddie']['produit']['reference'];
$qt = $_POST["quantite"];
function modif_qte($refprod, $qt)
{
$modifie = false;
// verif_qt_art = vérification des quantités d'un produit appelée depuis verif_qt.php //
if(verif_qt_art($refprod) != false && $qt != verif_qt_art($refprod))
{
/* Comptage des articles du panier */
$nb_articles = count($_SESSION['caddie']['produit']['reference']);
/* Transfert du panier dans le panier temporaire */
for($i = 0; $i < $nb_articles; $i++)
{
if($refprod == $_SESSION['caddie']['produit']['reference'])
{
$_SESSION['caddie']['produit']['reference'] = $qt;
$modifie = true;
}
}
}
}
if (modif_qte($refprod, $qt) == true)
{
array_push($_SESSION ['caddie']['produit']['quantite'], $_POST["quantite"]);
}
}
require_once('coordclient.php');
require_once('Effacerpanier.php');
require_once('Effacerproduit2.php');
Et maintenant une partie de l'affichage du panier (ds le code html): function recup_panier()
{
$articles = 0;
$articles = count($_SESSION['caddie']['produit']['reference']);
for ($i = 0; $articles > $i; $i++) {
$panier = '<form method="post" action="Panier.php">
<td align="center" colspan="6" style="text-align: left; vertical-align: middle; height: 40px;">
<span style="color: rgb(255, 255, 255); font-weight: bold;font-family: Optima;">
<b>'.$_SESSION['caddie']['produit']['reference'][$i].'</b>
</span>
</td>';
$panier .= '<td align="center" colspan="6" style="text-align: left; vertical-align: middle; height: 40px;">
<span style="color: rgb(255, 255, 255); font-weight: bold;font-family: Optima;">
<input value="'.$_SESSION['caddie']['produit']['quantite'][$i].'"maxlength="3" size="3" name="quantite">
....
}
return $panier
} Alors???