begin process at 2012 02 11 15:56:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Aide & documentation

 > 

demande aide pour Modification de la quantité d'un panier virtuel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

demande aide pour Modification de la quantité d'un panier virtuel

samedi 30 mai 2009 à 13:25:41 | demande aide pour Modification de la quantité d'un panier virtuel

geogeo62118

Bonjour, je souhaiterai obtenir de l'aide pour la modification de quantité d'un panier virtuel.
Mon problème est que j'ai mis en place mon test pour la modification qui fonction bien mais uniquement pour le cas où je n'ai qu'un seul article présent dans mon panier. pour moi le problème viens du fait que les identifiant du formulaire possède les mêmes nom quelque soit la ligne du tableau. Je ne parviens pas à trouver de solution. Voici mon code :

<?php
//pour la validation du formulaire **************************************************************
echo"
<script language='javascript'>
    function verific()
    {
      alert('ok');
      alert(document.getElementById('qtee').value);
      document.bidon.submit();
    }
</script>
";
//***********************************************************************************************

//pour la modification de la quantité************************************************************
if (isset($_POST['index']))
{
  echo $_POST['index'];
 
  if ($_POST['qtee'] > 0)
        {
            $positionProduit = array_search($_POST['index'],  $_SESSION['panier']['reference']);
            if ($positionProduit !== false)
            {
                $_SESSION['panier']['quantite'][$positionProduit] = $_POST['qtee'] ;
            }
        }
}
//**********************************************************************************************

//pour la suppression d'un article *************************************************************
If (isset($_GET['index']))
{
  $temp=array();
  $temp['ref']=array();
  $temp['quant']=array();
 
  for($i = 0; $i < count($_SESSION['panier']['reference']); $i++)
        {
            if ($_SESSION['panier']['reference'][$i] !== $_GET['index'])
            {
                 array_push( $temp['ref'],$_SESSION['panier']['reference'][$i]);
                 array_push( $temp['quant'],$_SESSION['panier']['quantite'][$i]);
            }
        }
       unset($_SESSION['panier']);
    for ($i = 0; $i < count($temp['ref']); $i++)
    {
    $_SESSION['panier']['reference'][$i]=$temp['ref'][$i];
    $_SESSION['panier']['quantite'][$i]=$temp['quant'][$i];
  }
       
        unset($temp);
}
//*************************************************************************************

//connexion au SGBD MySQL
      $connexion =mysql_connect("localhost","root","");

      //test si la connexion est faites ou non

      if($connexion)
      {
        if(count($_SESSION['panier']['reference'])!=0)
        {
           $NbRef = count($_SESSION['panier']['reference']);
            $i=0;
  //entete du tableau *******************
  echo "<CENTER><h1>Votre panier en Détail :</h1>
        <table border='1' width='85%'><br><br>
        <th><b>Ref</th>
        <th>Désignation</th>
        <th>Px Unit.</th>
        <th>Qté</th>
        <th>Montant</b></th>
        <th>Supprimer</th>
        ";
  //*************************************
            //connexion reussi
            //connexion a la base de données
            mysql_select_db("ciw",$connexion);

            $tot =0;
            for($i=0;$i<$NbRef;$i++)
            {
              $requete= "select * from produits where reference='".$_SESSION['panier']['reference'][$i]."';";
              $resultat=mysql_query($requete,$connexion);
              //recuperation du jeu d'enregistrement
              $ligne = mysql_fetch_assoc($resultat);
            $mont = $ligne['prix']*$_SESSION['panier']['quantite'][$i];
            $tot = $tot+$mont;
              echo " <tr><TD align='left' width='8%'>".$_SESSION['panier']['reference'][$i]."</TD>
                     <TD align='left' width='37%'>".$ligne['nom']."</TD>
                     <TD align='right' width='10%'>".$ligne['prix']." ¤</TD>
                     <TD align='right' width='10%'>
                     <form id='bidon' name='bidon' method='POST' action='index.php?page=detailpanier&ident=".$_SESSION['panier']['reference'][$i]."'>
                        <input type='text' id='qtee' name='qtee' value='".$_SESSION['panier']['quantite'][$i]."' size='3' onchange='verific();'>
                        <input type='hidden' name='index' value='".$_SESSION['panier']['reference'][$i]."'>
                     </form>                
                     </TD>
                     <TD align='right' width='20%'>".$mont." ¤</TD>
                     <td> <form action='index.php?page=detailpanier&index=".$_SESSION['panier']['reference'][$i]."' method='POST'>
                            <INPUT Type='submit' Name'BT_Valider' value='X'>
                          </form>
                    </td>
                     </TR>";
            }
            echo "<tr><TD align='right' widht='65%' colspan=5><B>Total </B></TD>
                     <TD align='right' width='20%'>".$tot." ¤</TD>
                    </TABLE><br><br>";
        ?>
             <form action="index.php?page=requetes&pan=vid" method="POST">
              <INPUT Type="submit" Name="BT_Valider" Value="Vider le panier">
            </form>      
        <?
        }
        else
        {
          echo "<CENTER><h1>Impossible car votre panier est vide!!!</h1></center>";
        }
      }
      else
      {
        //echec de la connexion
        echo" probleme de connexion <br>";
      }
     
     
?>


merci d'avance!
samedi 30 mai 2009 à 13:27:13 | Re : demande aide pour Modification de la quantité d'un panier virtuel

geogeo62118

j'ai pas fait attention mais il manque l'attribut name='bidon' dans le premier formulaire.

merci d'avance!
samedi 30 mai 2009 à 13:29:06 | Re : demande aide pour Modification de la quantité d'un panier virtuel

geogeo62118

voic le bon code:


<?php
//pour la validation du formulaire **************************************************************
echo"
<script language='javascript'>
    function verific()
    {
      alert('ok');
      alert(document.getElementById('qtee').value);
      document.bidon.submit();
    }
</script>
";
//***********************************************************************************************

//pour la modification de la quantité************************************************************
if (isset($_POST['index']))
{
  echo $_POST['index'];
 
  if ($_POST['qtee'] > 0)
        {
            $positionProduit = array_search($_POST['index'],  $_SESSION['panier']['reference']);
            if ($positionProduit !== false)
            {
                $_SESSION['panier']['quantite'][$positionProduit] = $_POST['qtee'] ;
            }
        }
}
//**********************************************************************************************

//pour la suppression d'un article *************************************************************
If (isset($_GET['index']))
{
  $temp=array();
  $temp['ref']=array();
  $temp['quant']=array();
 
  for($i = 0; $i < count($_SESSION['panier']['reference']); $i++)
        {
            if ($_SESSION['panier']['reference'][$i] !== $_GET['index'])
            {
                 array_push( $temp['ref'],$_SESSION['panier']['reference'][$i]);
                 array_push( $temp['quant'],$_SESSION['panier']['quantite'][$i]);
            }
        }
       unset($_SESSION['panier']);
    for ($i = 0; $i < count($temp['ref']); $i++)
    {
    $_SESSION['panier']['reference'][$i]=$temp['ref'][$i];
    $_SESSION['panier']['quantite'][$i]=$temp['quant'][$i];
  }
       
        unset($temp);
}
//*************************************************************************************

//connexion au SGBD MySQL
      $connexion =mysql_connect("localhost","root","");

      //test si la connexion est faites ou non

      if($connexion)
      {
        if(count($_SESSION['panier']['reference'])!=0)
        {
           $NbRef = count($_SESSION['panier']['reference']);
            $i=0;
  //entete du tableau *******************
  echo "<CENTER><h1>Votre panier en Détail :</h1>
        <table border='1' width='85%'><br><br>
        <th><b>Ref</th>
        <th>Désignation</th>
        <th>Px Unit.</th>
        <th>Qté</th>
        <th>Montant</b></th>
        <th>Supprimer</th>
        ";
  //*************************************
            //connexion reussi
            //connexion a la base de données
            mysql_select_db("ciw",$connexion);

            $tot =0;
            for($i=0;$i<$NbRef;$i++)
            {
              $requete= "select * from produits where reference='".$_SESSION['panier']['reference'][$i]."';";
              $resultat=mysql_query($requete,$connexion);
              //recuperation du jeu d'enregistrement
              $ligne = mysql_fetch_assoc($resultat);
            $mont = $ligne['prix']*$_SESSION['panier']['quantite'][$i];
            $tot = $tot+$mont;
              echo " <tr><TD align='left' width='8%'>".$_SESSION['panier']['reference'][$i]."</TD>
                     <TD align='left' width='37%'>".$ligne['nom']."</TD>
                     <TD align='right' width='10%'>".$ligne['prix']." ¤</TD>
                     <TD align='right' width='10%'>
                     <form id='bidon' name='bidon' method='POST' action='index.php?page=detailpanier'>
                        <input type='text' id='qtee' name='qtee' value='".$_SESSION['panier']['quantite'][$i]."' size='3' onchange='verific();'>
                        <input type='hidden' name='index' value='".$_SESSION['panier']['reference'][$i]."'>
                     </form>                
                     </TD>
                     <TD align='right' width='20%'>".$mont." ¤</TD>
                     <td> <form action='index.php?page=detailpanier&index=".$_SESSION['panier']['reference'][$i]."' method='POST'>
                            <INPUT Type='submit' Name'BT_Valider' value='X'>
                          </form>
                    </td>
                     </TR>";
            }
            echo "<tr><TD align='right' widht='65%' colspan=5><B>Total </B></TD>
                     <TD align='right' width='20%'>".$tot." ¤</TD>
                    </TABLE><br><br>";
        ?>
             <form action="index.php?page=requetes&pan=vid" method="POST">
              <INPUT Type="submit" Name="BT_Valider" Value="Vider le panier">
            </form>      
        <?
        }
        else
        {
          echo "<CENTER><h1>Impossible car votre panier est vide!!!</h1></center>";
        }
      }
      else
      {
        //echec de la connexion
        echo" probleme de connexion <br>";
      }
     
     
?>

merci d'avance!
dimanche 31 mai 2009 à 14:26:51 | Re : demande aide pour Modification de la quantité d'un panier virtuel

nautilus99

Bonjour,

La réponse à ton problème est formulée dans la question "pour moi le problème viens du fait que les identifiant du formulaire possède les mêmes nom quelque soit la ligne du tableau"

Si ton formulaire avait les noms d echamps suffixés par _01, _02... le s_01 etc étant le snuméros de lignes, ton problème n'existerait plus vraiment, chaque champ et ligne ayant une identité unique.


lundi 1 juin 2009 à 12:42:47 | Re : demande aide pour Modification de la quantité d'un panier virtuel

geogeo62118

je suis d'accord avec toi mais si je mais mon numéro de ligne dans le nom, comment faire pour valider mon formulaire qui lui se valide avec du javascript où le nom du formulaire à besoin d'être spécifié?
car si j'avais un bouton de type submit , là je n'aurai pas de problème, mais comme je passe par du javascript, je ne vois pas comment faire.

merci d'avance!
lundi 1 juin 2009 à 13:40:39 | Re : demande aide pour Modification de la quantité d'un panier virtuel

nautilus99

Bonjour,

Le Javascript sait gérer aussi les indices dans les tables. Regardes dans les codes ici, ou sur phpclasses.org, il y a pas mal d'exemples fonctionnels.


lundi 1 juin 2009 à 14:00:17 | Re : demande aide pour Modification de la quantité d'un panier virtuel

geogeo62118

ok je vais essayer de regarder sur phpclasses.org et pour l'autre visiblement ya pas le lien.
encore merci.

merci d'avance!


Cette discussion est classée dans : connexion, temp, session, reference, panier


Répondre à ce message

Sujets en rapport avec ce message

Panier PHP [ par idrisidev ] slt tt le monde ,j'ai fai un code php pour ajouter des produit au panier ,l'ajout fait bien mais il m'affiche le message suivant que jai pa pu résoudr caddie [ par cobra176 ] bonjour a tous .j'ai réalise un caddie avec des sessions , je me pose une question car j'ai essaye de retirer des produits de mon caddie , je n'y arri probleme de session et $_SESSION[ ] [ par pioupioupioupiou ] bonjour a tous et heureux de vous revoir sa faisait longtemps lol alors voila petit souci de noob :( !! j'effectuer une ouverture de session mais lors Caddie e-commerce [ par guisx00 ] Salut je suis à la recherche de conseils svp, Voila je suis entrain de crée un petit panier e-commerce pour lister les articles et en choisir un sa c' charger une donnée dans une session [ par Masterchiefer ] Bonjour à tous, j'avais posté un message avant et après avoir visité le lien que l'on m'a donné j'ai découvert les sessions. J'ai installé mon panier panier : je ne m'en sors pas.... [ par jereln ] Bonjour, je suis en trai de créer un panier avec utilisation des sessions.J'ai une première page (index.php) qui correspond à mon catalogue. Chaque ar problème de panier et session [ par jereln ] je suis en train de créer un panier à l'aide de sessions. J'ai une première page catalogue (index.php) où sont listés mes articles. Chacun d'eux a un PARTAGER UNE CONNEXION MySQL ENTRE PLUSIEURS SESSION [ par CleFac ] bonjour,j'ai remarqué que sur certains hébergeur le nombre de connexions silmultées sont limitées.donc j'aimerai savoir comment partager une connexion Problème de panier [ par enadeli ] Bonjour,j'ai créé un panier qui fonctionne très bien mais avec le champ reference de ma BDD et je voudrais ajouter des articles avec le nom reference2 Conserver une connexion MySQL entre plusieurs pages [ par fregolo52 ] Bonjour,J'aimerais conserver ma connexion entre 2 pages php.Pour simplifier, dans ma 1ere page, je sauvegarde des données utiles et dans la seconde je


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,278 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales