Question : création d'une rangée de session pour le chariot simple

Je ne sais pas vraiment si j'ai la bonne idée ici mais je veux stocker des choix d'utilisateurs en session. le

So, laisse indiquer là sont 3 articles. Ils cliquent dessus un pour découvrir plus à son sujet. Les voici qui peuvent cliquer dessus s'ajoutent au chariot. Une fois qu'ils cliquent dessus ajouter le chariot qu'il doit ajouter cette identification d'article à une session. Est-ce que mais d'autre part s'ils ajoutent un article différent doit il être stocké en même session ? À l'heure actuelle l'ajouter au lien de chariot n'utilise pas le poteau mais obtient. Ainsi, à la page de chariot j'ai le ci-dessous mais je pense que dès qu'ils cliqueront dessus des autres ajouter au chariot, la valeur de session changerai.

$_SESSION = $_GET [« DVDID »] ;
class= de

Réponse : création d'une rangée de session pour le chariot simple

Il est plus compliqué qu'il est évident ainsi j'ai attaché un certain code qui le fera (voir ci-dessous) car une classe de PHP. C'est seulement un panier très simple mais il peut être facilement prolongé.

Il est employé comme ainsi

$b = nouveau myBasket (« basketName ») ;    // vous pouvez courir plusieurs paniers, employez juste des noms uniques

$b->addItem ($productCode) ;  // ajoute 1 article

$b->addItem ($productCode2, 10) ;   // additionne une quantité de 10 pour productCode2


Pour montrer le panier

$items = $b->fetchAllItems () ;
$qty = $b->fetchAllQtys () ;

foreach ($items comme $index=> $aProductCode) {

     code produit d'écho le « $aProductCode a {$qty [$index]} des articles
« ;
}
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 :
142 :
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 :
152 :
153 :
154 :
155 :
156 :
157 :
158 :
159 :
160 :
161 :
162 :
163 :
164 :
165 :
166 :
167 :
168 :
169 :
170 :
171 :
172 :
173 :
174 :
175 :
176 :
177 :
178 :
179 :
180 :
181 :
182 :
183 :
184 :
185 :
186 :
187 :
188 :
189 :
190 :
191 :
192 :
193 :
194 :
195 :
196 :
197 :
198 :
199 :
200 :
201 :
202 :
203 :
204 :
sessName = $name. « _bskt » ;
          $this->sessQty  = $name. « _qty » ;

          $this->initialise () ;
     }





     // ----- Méthodes privées -------------------------------------------------


     Magasin de // la rangée courante dans une variable de session
     //
     updateBasket privé de fonction () {
          $_SESSION [$this->sessName] = fabriquent en série ($this->basket) ;
          $_SESSION [$this->sessQty]  = fabriquent en série ($this->qty) ;
     }



     // initialisent le panier
     //
     la fonction privée initialisent () {

          Contrôle de // si la session est en marche et si rechercher ainsi le panier existant
          //
          si (isset ($_SESSION [$this->sessName]) isset de && ($_SESSION [$this->sessQty])) {
               $this->basket = unserialize ($_SESSION [$this->sessName]) ;
               $this->qty    = unserialize ($_SESSION [$this->sessQty]) ;
          }
          autrement {
               $this->basket = rangée () ;
               $this->qty    = rangée () ;
               $this->updateBasket () ;
          }

     }



     // ----- Méthodes publiques --------------------------------------------------


     // vident le panier dehors
     //
     espace libre de fonction () {

          supprimé ($_SESSION [$this->sessName]) ;
          supprimé ($_SESSION [$this->sessQty]) ;
          $this->initialise () ;
     }



     // ajoutent un objet à la fin de la liste
     //
     Paramètres de // : $item - un objet à stocker
     //             $num - une quantité à stocker, défauts à 1
     //
     addItem de fonction ($item, $num=1) {
          // assurent le séjour d'index dans l'étape en recherchant le plus haut
          index existant de // et incrémentation de lui
          //
          $ctr = compte ($this->basket) ;

          si ($ctr > 0) {
               $lastKey = extrémité (array_keys ($this->qty));
               $ctr = $lastKey + 1 ;
          }

          $this->basket [$ctr] = $item ;
          $this->qty    [$ctr] = $num ;

          $this->updateBasket () ;
     }



     // enlèvent un article de la liste - identifier par le nombre de panier.
     la NOTE de // QUE L'ÉLIMINATION D'UN ARTICLE NE REMET PAS À ZÉRO LE PANIER NUMÉROTE dans les rangées.
     //
     Paramètres de // : $basketNumber - l'index de l'entrée de rangée à enlever de la rangée
     //
     rmvItem de fonction ($basketNumber) {

          si (compte ($this->basket) > 0) {

               Contrôle de // 001 qu'un article existe avant d'essayer son déplacement
               //
               si (isset ($this->basket [$basketNumber]  )) {
                    supprimé ($this->basket [$basketNumber]) ;
                    supprimé ($this->qty [$basketNumber]) ;
                    $this->updateBasket () ;
               }
          }
     }



     Effort de // un article
     //
     Paramètres de // : $basketNumber - l'index de l'entrée de rangée à rechercher de la rangée
     //
     fetchItem de fonction ($basketNumber) {
          si (compte ($this->basket) > 0) {
               $this->basket de retour [$basketNumber] ;
          }
     }



     Effort de // par quantité pour un article
     //
     Paramètres de // : $basketNumber - l'index de la quantité à rechercher de la rangée
     //
     fetchItemQuantity de fonction ($basketNumber) {
          si (compte ($this->qty) > 0) {
               $this->qty de retour [$basketNumber] ;
          }
     }


     Changement de // un article donné de la liste
     //
     Paramètres de // : $basketNumber - l'index de l'objet à la mise à jour
     //             $anItem - un objet
     //
     chgItem de fonction ($basketNumber, $anItem) {
          si (compte de && de >= 0 de $basketNumber ($this->basket) > 0) {
               Contrôle de // 001 qu'un article existe avant d'essayer son déplacement
               //
               si (isset ($this->basket [$basketNumber]  )) {
                    $this->basket [$basketNumber] = $anItem ;
                    $this->updateBasket () ;
               }
          }
     }



     Changement de // par quantité donnée d'articles de la liste
     //
     Paramètres de // : $basketNumber - l'index de l'objet à la mise à jour
     //             $qty - La nouvelle quantité
     //
     fonction chgQty ($basketNumber, $qty) {
          si (compte de && de >= 0 de $basketNumber ($this->qty) > 0) {

               Contrôle de // 001 qu'un article existe avant d'essayer son déplacement
               //
               si (isset ($this->basket [$basketNumber]  )) {
                    $this->qty [$basketNumber] = $qty ;
                    $this->updateBasket () ;
               }
          }
     }



     // obtiennent une liste de tous les articles dans le panier
     //
     fetchAllItems de fonction () {
          $this->basket de retour ;
     }



     // obtiennent une liste de toutes les quantités d'article stockées dans le panier
     //
     fetchAllQtys de fonction () {
          $this->qty de retour ;
     }



     // renvoie le compte du nombre d'articles dans le panier
     //
     countBasket de fonction () {
          array_sum de retour ($this->qty) ;
     }



} extrémité de // de myBasket de classe
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us