Bonjour à vous,
je suis confronté à un problème de logique, j'ai beau tourner le problème dans tous les sens, je n'arrive pas à résoudre mon problème :
Je m'explique : je fais un site e-commerce (en local) en M.V.C (qui devrait être orienté objet mais j'utilise plutôt ce procédé pour structuré mon code):
Donc j'ai dans ma vue :
un formulaire avec mon panier qui récupère l'id du produit, la quantité, le prix par ligne et le prix total dans une boucle, je souhaite sauvegarder ce panier et lorsque je clique sur "Save", cela me récupère les données de la boucle et que sa me les affiche dans une nouvelle boucle puis que sa me les inserts dans ma table "panier" ; j'arrive à récupérer mes données de ma 1er boucle (dans ma vue), dans une nouvelle boucle (tableau array) (dans mon contrôleur) mais là où je bloque c'est insérer les données de mon array (contrôleur) dans ma table grâce à ma fonction insérerpanier(): j'ai essayer de mettre les boucles l'une dans l'autre, de les séparer et de mettre un paramètre à chaque foi dans ma fonction, soit j'ai des doublons soit rien.
Voici mon code de mes trois fichiers :
VUE :
CONTROLEUR :
MODELE :
Sachant que ma requête pour que j'insère plusieurs données dans un même champ n'ai pas encore faite. (pas le sujet du post)
Merci à vous
Modifié par yser01 (23 May 2015 - 15:02)
je suis confronté à un problème de logique, j'ai beau tourner le problème dans tous les sens, je n'arrive pas à résoudre mon problème :
Je m'explique : je fais un site e-commerce (en local) en M.V.C (qui devrait être orienté objet mais j'utilise plutôt ce procédé pour structuré mon code):
Donc j'ai dans ma vue :
un formulaire avec mon panier qui récupère l'id du produit, la quantité, le prix par ligne et le prix total dans une boucle, je souhaite sauvegarder ce panier et lorsque je clique sur "Save", cela me récupère les données de la boucle et que sa me les affiche dans une nouvelle boucle puis que sa me les inserts dans ma table "panier" ; j'arrive à récupérer mes données de ma 1er boucle (dans ma vue), dans une nouvelle boucle (tableau array) (dans mon contrôleur) mais là où je bloque c'est insérer les données de mon array (contrôleur) dans ma table grâce à ma fonction insérerpanier(): j'ai essayer de mettre les boucles l'une dans l'autre, de les séparer et de mettre un paramètre à chaque foi dans ma fonction, soit j'ai des doublons soit rien.
Voici mon code de mes trois fichiers :
VUE :
while($data=mysql_fetch_array($req) )
{
$nom=$data['LibelleProduit'];
$prix=$data['PritUTTC'];
$pxligne=$prix*$cde;
$tot+=$pxligne;
$id = $data['NumProduit'];
echo"<tr><td>$nom</td><td>$prix €</td><td>$cde</td><td align='right'>".number_format($pxligne, 2,'.',' ')."</td>";
echo "<td> <div class='switch demo1'><input type='checkbox' name='case[]' value='".$id."'><label></label></div></td>";
//id du produit
echo "<td><input type='hidden' name='idproduit[]' value='".$id."' /></td></tr>";
//prix du produit
echo "<td><input type='hidden' name='prixproduit[]' value='".$prix."' /></td></tr>";
//prix pour la ligne de commande
echo "<td><input type='hidden' name='pxligne[]' value='".$pxligne."' /></td></tr>";
//Quantité
echo "<td><input type='hidden' name='qte[]' value='".$cde."' /></td></tr>";
}
}
echo"<tr><td colspan='3' align='right'>TOTAL DE VOTRE PANIER </td><td align='right'>".number_format($tot, 2,'.',' ')."€ TTC</td></tr>";
echo "<td><input type='hidden' name='tot' value='".$tot."' /></td></tr>";
mysql_close();
echo "<tr>
<td colspan='5' align='right'>
<input type='submit' name='action' value='Eliminer'><div class='print6'></div></input>
<input type='submit' name='action' value='Changer'><div class='print7'></div></input>
<input type='submit' name='action' value='Save'><div class='print7'></div></input>
</td>
</tr>
</table>
</form>";
?
CONTROLEUR :
//sauver panier
if(isset($_POST['action']) and $_POST['action']=='Save')
{
$tot = $_POST['tot'];
for ($i=0; $i<count($_POST['idproduit']); $i++)
{
// Si il y a quelque chose dans produit, récuperation de tous les idproduit
if (isset($_POST['idproduit']) )
{
foreach ($_POST['idproduit'] as $pro)
{
echo $pro;
echo "<br>";
}
}
// Si il y a quelque chose dans produit, récuperation de tous les prixproduit
if (isset($_POST['prixproduit']) )
{
foreach ($_POST['prixproduit'] as $prix)
{
echo $prix;
echo "<br>";
}
}
// Si il y a quelque chose dans produit, récuperation du montant par quantité choisir
if (isset($_POST['pxligne']) )
{
foreach ($_POST['pxligne'] as $prixl)
{
}
}
// Si il y a quelque chose dans produit, récuperation quantité
if (isset($_POST['qte']) )
{
foreach ($_POST['qte'] as $qtep)
{
echo $qtep;
echo "<br>";
}
}
inser_PANNIERs ($pro, $prix,$prixl,$qtep );
}
MODELE :
function inser_PANNIERs ($pro, $prix,$prixl,$qtep )
{
echo $pro;
echo "<br>";
echo $prix;
echo "<br>";
echo $prixl;
echo "<br>";
echo $qtep;
echo "<br>";
$DateHeure= date("Y-m-d H:i:s");
$PANNIERs = array ();
$req = mysql_query("INSERT INTO panier (DatePanier,PrixTotal) VALUES ('$DateHeure',$tot)");
return $req;
}
Sachant que ma requête pour que j'insère plusieurs données dans un même champ n'ai pas encore faite. (pas le sujet du post)
Merci à vous
Modifié par yser01 (23 May 2015 - 15:02)