Webshop Mehrere Artikel mit Checkbox gleichzeitig in den Warenkorb legen

Macman_FI

Grünschnabel
Hallo.

Möchte einen kleinen Webshop machen. (PHP und MySQL).
Das Erstellen der Datenbank und das Anzeigen lassen der Artikel ist soweit kein Problem. Auch einen Artikel in den Warenkorb packen ist kein Problem.

Nun möchte ich aber, das mehrere Artikel aufgelistet werden, und hinter jedem Artikel eine checkbox ist.

Anschließend sollen, über einen Button, alle Artikel in den Warenkorb gelegt werden bei denen die checkbox angelickt ist.

Vielleicht kann mir hier jemand mal nen kleinen Tipp geben.

Ähnliches Problem gibt es ja dann auch zum Schluß, wenn man zum Beispiel 10 Artikel im Warenkorb hat und dann noch die Bestellmenge ändern möchte. Habe schon mal während meiner Ausbildung nen Shop mit Pearl gemacht und hab ich das nur so hinbekommen, das man die Bestellmenge für jeden Artikel einzeln ändern musste. Besser wäre ja, wenn man alle Bestellmengen gleichtzeitig mit einem Button aktualisieren kann.

Braucht man da vielleicht JavaScript?
 
Zuletzt bearbeitet:
Anzeigen:

PHP:
$query2 = mysql_query("SELECT * FROM tabel");
while ($query = mysql_fetch_row($query2)) {
   echo '<input type="checkbox" name="x'.$query['id'].'" value="true">';
}

Eintragen:
PHP:
$query2 = mysql_query("SELECT * FROM tabel");
while ($query = mysql_fetch_row($query2)) {
   $artikel = "x".$query['id'];
   if ($$artikel == "true") // in warenkorb
}

Also ich würde das jetzt so machen, sollte funktionieren, ist nicht getestet!
 
sorry aqua, aber sieht etwas schlampig gecodet aus. Nach wie vor ist register_globals = off immernoch zu empfehlen.

Ich würde die Checkbox eines jeden Artikels als Array benennen und die value der Checkbox auf die ID des Artikels setzen, z.B. so:

PHP:
<form method="POST" action="deinweiteresscript.php"> 
 artikel1 <input type="checkbox" name="artikel[]" value="1" /><br />
 artikel2 <input type="checkbox" name="artikel[]" value="2" /><br />
</form>
usw.

die [] im Namen bewirken, das du ganze wie ein Array ansprechen kannst.

Dann liest du beim Anzeigen einfach das Array aus, z.B. so

PHP:
//Entweder einfach das Array in z.B. ein Session-Element des Warenkorbes kopieren
$_SESSION['warenkorb'] = $_POST['artikel'];
//Oder eben nen Check machen ob jede ArtikelID existiert
//HIerzu aber prüfen ob $_POST['artikel'] auch Werte enthält !
$sth = @mysql_query("SELECT count(*) as anzahl FROM tabelle WHERE artikelID IN (".implode(","$_POST['artikel']).")") or die("".mysql_error());
$result = mysql_fetch_assoc($sth);
if( $result['anzahl'] == count ($_POST['artikel'] )
   //Hier in den Warenkorb
else
   //Mindestens ein Artikel existiert nicht -> Fehler

Nur mal so als Ansatz. Wie du deine Artikel bzw. Deinen Warenkorb sinnvoll in der Session speicherst, hängt davon ab, was du später auch damit machen willst. z.B. Für alle Artikel gesammelt eine Auflistung und eine Änderung der Anzahl vornehmen zu können, würde ich einmal das Array mit dem Artikeln in der Session speichern und ein weiteres Array mit den Anzahlen der Artikel. Wobei der Schlüssel dieses Arrays die ArtikelID (wenn denn numerisch) ist.
 
Zurück