Vraag : het creëren van een zittingsserie voor eenvoudige kar

Ik weet werkelijk niet of hier heb ik het juiste idee maar ik wil gebruikerskeuzen in een zitting opslaan.

So, laat daar zeggen is 3 punten. Zij klikken op om meer over het te weten te komen. Hier kunnen zij klikken toevoegen aan kar. Zodra zij klikken voeg kar toe het die puntidentiteitskaart aan een zitting moet toevoegen. Maar moet anderzijds als zij een verschillend punt toevoegen het in de zelfde zitting worden opgeslagen? Op het ogenblik voeg aan karverbinding toe gebruikt geen post maar krijgen. Zo, op de karpagina heb ik onderstaand maar ik denk dat klikken zodra zij op een andere voeg aan kar toe, zal de zittingswaarde veranderen.

$_SESSION = $_GET [„DVDID“];

Antwoord : het creëren van een zittingsserie voor eenvoudige kar

Het is ingewikkelder dan het verschijnt zodat heb ik één of andere code vastgemaakt die het (zie verder) als PHP klasse zal doen. Dit is slechts een zeer eenvoudige mand maar het kan gemakkelijk worden uitgebreid.

Het wordt zo gebruikt als

$b = nieuwe myBasket („basketName“);    // u verscheidene manden, enkel gebruiks unieke namen kunt in werking stellen

$b->addItem ($productCode);  // voegt 1 punt toe

$b->addItem ($productCode2, 10);   // voegt een hoeveelheid van 10 voor productCode2 toe


Om de mand te tonen

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

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

     code $aProductCode van het echo de „Product heeft {$qty [$index]} punten
„;
}
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 ();
     }





     //  Privé methodes 


     // Opslag de huidige serie in een zittingsvariabele
     //
     privé functie updateBasket () {
          $_SESSION [$this->sessName] = vervaardig in series ($this->basket);
          $_SESSION [$this->sessQty]  = vervaardig in series ($this->qty);
     }



     // initialiseert de mand
     //
     de privé functie initialiseert () {

          // Controle als de zitting lopend is en als zo de bestaande mand terugwin
          //
          als (isset ($_SESSION [$this->sessName]) && isset ($_SESSION [$this->sessQty])) {
               $this->basket = unserialize ($_SESSION [$this->sessName]);
               $this->qty    = unserialize ($_SESSION [$this->sessQty]);
          }
          anders {
               $this->basket = serie ();
               $this->qty    = serie ();
               $this->updateBasket ();
          }

     }



     //  Openbare methodes 


     Leeg // de mand uit
     //
     duidelijke functie () {

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



     // voegt een voorwerp aan het eind van de lijst toe
     //
     // Parameters: $item - een op te slaan voorwerp
     //             $num - een hoeveelheid dat, gebreken aan 1 moet worden opgeslagen
     //
     functie addItem ($item, $num=1) {
          // verzekert het indexenverblijf in stap door het hoogst terug te winnen
          // bestaande index en het verhogen van het
          //
          $ctr = tel ($this->basket);

          als ($ctr > 0) {
               $lastKey = eind (array_keys ($this->qty));
               $ctr = $lastKey + 1;
          }

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

          $this->updateBasket ();
     }



     // verwijdert een punt uit de lijst - identificeer me door het mandaantal.
     // NOTA DAT HET VERWIJDEREN VAN EEN PUNT NIET DE AANTALLEN VAN DE MAND IN DE SERIES TERUGSTELT.
     //
     // Parameters: $basketNumber - de index van de serieingang om uit de serie te verwijderen
     //
     functie rmvItem ($basketNumber) {

          als (telling ($this->basket) > 0) {

               // 001 Controle dat een punt alvorens zijn verwijdering te proberen bestaat
               //
               als (isset ($this->basket [$basketNumber]  )) {
                    unset ($this->basket [$basketNumber]);
                    unset ($this->qty [$basketNumber]);
                    $this->updateBasket ();
               }
          }
     }



     // Haal een punt
     //
     // Parameters: $basketNumber - de index van de serieingang van de serie terug te winnen
     //
     functie fetchItem ($basketNumber) {
          als (telling ($this->basket) > 0) {
               terugkeer $this->basket [$basketNumber];
          }
     }



     // Haal een hoeveelheid voor een punt
     //
     // Parameters: $basketNumber - de index van qty om van de serie terug te winnen
     //
     functie fetchItemQuantity ($basketNumber) {
          als (telling ($this->qty) > 0) {
               terugkeer $this->qty [$basketNumber];
          }
     }


     // Verandering een bepaald punt in de lijst
     //
     // Parameters: $basketNumber - de index van het voorwerp aan update
     //             $anItem - een voorwerp
     //
     functie chgItem ($basketNumber, $anItem) {
          als ($basketNumber >= 0 telling && ($this->basket) > 0) {
               // 001 Controle dat een punt alvorens zijn verwijdering te proberen bestaat
               //
               als (isset ($this->basket [$basketNumber]  )) {
                    $this->basket [$basketNumber] = $anItem;
                    $this->updateBasket ();
               }
          }
     }



     // Verandering een bepaalde puntenhoeveelheid in de lijst
     //
     // Parameters: $basketNumber - de index van het voorwerp aan update
     //             $qty - de nieuwe hoeveelheid
     //
     chgQty functie ($basketNumber, $qty) {
          als ($basketNumber >= 0 telling && ($this->qty) > 0) {

               // 001 Controle dat een punt alvorens zijn verwijdering te proberen bestaat
               //
               als (isset ($this->basket [$basketNumber]  )) {
                    $this->qty [$basketNumber] = $qty;
                    $this->updateBasket ();
               }
          }
     }



     // krijgt een lijst van alle punten in de mand
     //
     functie fetchAllItems () {
          terugkeer $this->basket;
     }



     // krijgt een lijst van alle die punthoeveelheden in de mand worden opgeslagen
     //
     functie fetchAllQtys () {
          terugkeer $this->qty;
     }



     // keert de telling van het aantal punten in de mand terug
     //
     functie countBasket () {
          terugkeer array_sum ($this->qty);
     }



} // Eind van klasse myBasket
Andere oplossingen  
 
programming4us programming4us