Petit nouveau ! |
7 Messages
07 févr. 2022, 09:39
Bonjour à tous,
La solution proposée par ynx fonctionne, mais j'ai encore un problème:
le formulaire affiche bien chaque commande avec les produits associés, pour le premier produit de la première commande affichée, je peux modifier la quantité, le changement de quantité provoque l'appui du bouton et met à jour le prix pour cette ligne de produit et ajuste le montant de la commande. Par contre s'il y a une 2ème ligne de produit, aucun changement ne se passe, il en est de même pour toutes les autres commandes et lignes de produit associées: le changement de valeur de la quantité provoque bien quelque chose mais la quantité choisie ne s'afiche qu'un bref instant.
je vous copie le code :
Merci pour votre aide
<?php
require_once("./inc/init.inc.php");
function get_options($select,$produit)
{
//alert('coucou !');
$sql='SELECT stock FROM produit WHERE id_Produit='.$produit;
$list=executeRequete($sql);
$data = $list->fetch_assoc();
$options='';
for($nombre = 1; $nombre <= $data['stock']; $nombre++)
{
//debug($nombre);
if($select==$nombre)
{
$options.='<option value="'.$nombre.'" selected>'.$nombre.'</option>';
} else
{
$options.='<option value="'.$nombre.'" >'.$nombre.'</option>';
}
}
return $options;
}
//--------------------------------- TRAITEMENTS PHP ---------------------------------//
$client = $_SESSION['membre']['id_membre'];
//if(!($_GET['action'])) $_GET['action'] == 'affichage_commande';
//--- SUPPRESSION Commande ---//
if((isset($_POST['bouton_c']) && $_POST['bouton_c'] == "suppression_commande"))
{ //debug($_POST,1);
//debug($_GET);
$resultat = executeRequete("SELECT * FROM commande WHERE id_commande=$_POST[id_commande]");
$commande_a_supprimer = $resultat->fetch_assoc();
$contenu .= '<div class="validation">Suppression de la commande : ' . $_POST['id_membre'] . '</div>';
executeRequete("DELETE FROM details_commande WHERE id_commande=$_POST[id_commande]");
executeRequete("DELETE FROM commande WHERE id_commande=$_POST[id_commande]");
$_GET['action'] = 'affichage_commande';
}
//--- SUPPRESSION produit dans commande ---//
if(isset($_POST['bouton_dc']) && $_POST['bouton_dc'] == "suppression_produit")
{
//debug($_POST,0);
//debug($_GET);
executeRequete("DELETE FROM details_commande WHERE id_details_commande=$_POST[id_details_commande]");
//Vérifier s'il reste des produits dans la commande si non détruire la commande
$sup_produit=executeRequete("SELECT * FROM details_commande WHERE id_commande=$_POST[id_commande]");
if (!$sup_produit->num_rows>0)
{ executeRequete("DELETE FROM commande WHERE id_commande=$_POST[id_commande]");}
else
{
// recalcul du montant de la commande qui comprend plusieurs produits
$montant_f=calculMontant_après_modif_produit($_POST[id_commande]);
$resultat3 = executeRequete("UPDATE `commande` SET montant = $montant_f WHERE id_commande = $_POST[id_commande]");
}
$_GET['action'] = 'affichage_commande';
}
//--- ENREGISTREMENT Commande après modif d'un ou plusieurs produits--//
//--- Modification produit dans commande ---//
if(isset($_POST['bouton_dc']) && $_POST['bouton_dc'] == "modification_produit")
//if($_POST['bouton_dc'] == "modification_produit")
{
//if ($_POST['id_details_commande']=='81'){ debug($_POST);}
$id_dcmd=$_POST['id_details_commande'];
$q_dcmd=$_POST['quantite'];
$id_cmd=$_POST['id_commande'];
$pu_dcmd=$_POST['prix_unitaire'];
//recalculer le prix de cette ligne de produit prix= (quantité * prix unitaire)
$Prix=$q_dcmd*$pu_dcmd;
$_POST['prix']=$Prix;
$resultat3= executeRequete("UPDATE details_commande SET quantite = $q_dcmd,
prix=$Prix
WHERE id_details_commande = $id_dcmd");
// Mettre à jour la commande en totalisant les prix des différents produits
// recalcul du montant de la commande qui comprend plusieurs produits
$montant_f=calculMontant_après_modif_produit($id_cmd);
$resultat3 = executeRequete("UPDATE `commande` SET montant = $montant_f WHERE id_commande = $id_cmd");
//alert('Je suis dans modification produit');
$_GET['action'] = 'affichage_commande';
}
//--- ENREGISTREMENT Commande ---//
//--- LIENS commande ---//
$contenu .= '<a href="?action=affichage_commande">Affichage commande</a><br>';
//--- AFFICHAGE Commandes ---//
//alert('Client = '.$client );
if(isset($_GET['action']) && $_GET['action'] == "affichage_commande")
{//{debug($_SESSION);
//echo 'Valeur de session.idmembre : '.$_SESSION[membre][id_membre];
$resultat = executeRequete("SELECT membre.pseudo, commande.id_membre, commande.id_commande, commande.montant,
commande.date_enregistrement, commande.etat
FROM `membre`,`commande`
WHERE membre.id_membre=commande.id_membre
AND commande.id_membre= $client
ORDER BY commande.id_membre, commande.id_commande" );
// Préparation Affichage des commandes
//debug($resultat);
while($colonne = $resultat->fetch_field())
{
//debug($colonne);
while ($ligne = $resultat->fetch_assoc())
{
//----------------------------------------------------------------------------------------------------
//$contenu .= '<table>';
$contenu .= '<fieldset>';
$contenu .= '<form id="comform" method="POST" enctype="multipart/form-data" >';
$contenu .= '<a><strong>Pseudo : <input class="etcmd" readonly type="text" size="8" name="pseudo" value="' . $ligne['pseudo'] . ' "</input></a>';
$contenu .= '<a> Date_enregistrement : <input class="etcmd" readonly type="text" size="15" name="date_enregistrement" value="' . renvoiDateFR($ligne['date_enregistrement']) . ' "</input></a><br>';
$contenu .= '<a hidden ><strong>id_membre : <input readonly type="text" size="10" name="id_membre" value="' . $ligne['id_membre'] . '"</input></strong></a><br>';
$contenu .= '<a><strong>id_commande : <input class="etcmd" readonly type="text" size="10" name="id_commande" value="' . $ligne['id_commande'] . ' "</input></strong></a>';
$contenu .= '<a>montant : <input class="inputtx" readonly type="text" size="5" name="montant" value="' . $ligne['montant'] . ' "</input></a>';
$contenu .= '<a>etat : <input class="etcmd" readonly type="text" size="15" name="etat" value="'.$ligne['etat'] . '"</input></a><br>';
$contenu .= '<input type = submit name="bouton_c" class="suppression" value="suppression_commande" OnClick="return(confirm(\'Etes vous certain de vouloir supprimer la commande numéro '.$ligne['id_commande'].' ?\'));">';
//error_reporting(E_ALL);
$contenu .= '</form>';
//----------------------------------------------------------------------------------------------------
// Fin de l'affichage de l'entête de la commande
// début de l'affichage des details de la commande
$num_commande=$ligne['id_commande'];
//debug($ligne);
$resultat2 = executeRequete("SELECT
cmd.id_commande, dcmd.id_details_commande , dcmd.id_produit , quantite, prix_unitaire, dcmd.prix , pro.photo, reference
FROM
commande cmd, details_commande dcmd, produit pro
WHERE
cmd.id_commande=dcmd.id_commande AND dcmd.id_produit= pro.id_produit
AND cmd.id_commande=$num_commande
ORDER BY
cmd.id_commande, dcmd.id_details_commande");
$contenu .= '<a><strong> Affichage des articles de la commande n° </strong></a>';
$contenu .= $num_commande.' Nombre d\'article(s) enregistré(s) : ' . $resultat2->num_rows;
$contenu .= '<table border="0" cellpadding="3"><tr>';
$contenu .= '<th>id_commande</th>';
$contenu .= '<th>id_details_commande</th>';
$contenu .= '<th>id_produit</th>';
$contenu .= '<th>Nb</th>';
$contenu .= '<th>Prix_unitaire</th>';
$contenu .= '<th>Prix</th>';
$contenu .= '<th>Photo</th>';
$contenu .= '<th>reférence</th>';
$contenu .= '</tr>';
while ($ligne_dcmd = $resultat2->fetch_assoc())
{
//debug($ligne_dcmd);
$contenu .='<form id= detail_commande action= '.$_SERVER['PHP_SELF'].' method="POST" enctype="multipart/form-data" >';
$contenu .= '<tr>';
$contenu .= '<td><input readonly type="text" size="10" name="id_commande" value="' . $ligne_dcmd['id_commande'] . '"</input></td>';
$contenu .= '<td><input readonly type="text" size="10" name="id_details_commande" value="' . $ligne_dcmd['id_details_commande'] . '"</input></td>';
$contenu .= '<td><input readonly type="text" size="10" name="id_produit" value="' . $ligne_dcmd['id_produit'] . '"</input></td>';
$contenu .='<td><select class="shortenedSelect" name="quantite" onchange="document.getElementById(\'bouton_dc_modification_produit\').click()">';
$contenu .= get_options($ligne_dcmd['quantite'],$ligne_dcmd['id_produit']);
$contenu .='</select></td>';
$contenu .= '<td><input readonly type="text" size="10" name="prix_unitaire" value="' . $ligne_dcmd['prix_unitaire'] . '"</input></td>';
$contenu .= '<td><input class="inputtx" type="text" size="10" name="prix" value="' . $ligne_dcmd['prix'] . '"</input></td>';
$contenu .= '<td><img src="' . $ligne_dcmd['photo'] . '" width="30" height="30"></td>';
$contenu .= '<td><input readonly type="text" size="10" name="reference" value="' . $ligne_dcmd['reference'] . '"</input></td>';
$contenu .= '<td><input type=submit name="bouton_dc" class="modification" value="modification_produit" id="bouton_dc_modification_produit"></td>';
$contenu .= '<td><input type=submit name="bouton_dc" class="suppression" value="suppression_produit" OnClick="return(confirm(\'Etes vous certain de vouloir supprimer le produit numéro '.$ligne_dcmd['id_produit'].' ?\'));"></td>';
$contenu .= '</tr>';
$contenu .='</form>';
}
$contenu .= '</table>';
$contenu .= '</fieldset>';
// fin de affichage details commande
}
}
}
//$_GET['action'] == 'affichage_commande';
//--------------------------------- AFFICHAGE HTML ---------------------------------//
require_once("./inc/haut.inc.php");
echo $contenu;
//--------------------------------- AFFICHAGE détail commande ---------------------------------//
//require_once("affiche_commande.php");
//--------------------------------- AFFICHAGE bas de page ---------------------------------//
require_once("./inc/bas.inc.php");
?>