Webshop-Artikelanzahl übergeben

jenschke

Grünschnabel
Hallo!

Bin zur Zeit dabei einen (kleinen) Webshop mit Php und MySql zu schreiben! Klappt auch alles ganz gut!
Jetzt fällt mir nur keine "saubere" Lösung dazu ein, wie ich die angegebene Anzahl für die einzelnen Artikel auswerte.

Also das sieht folgendermaßen aus:
Ich lese alle Artikel aus einer DB aus, gebe die Daten in einer Tabelle (also auf der Seite) aus und hänge ein Textfeld für die Menge hinten dran!

Nachdem dann überall die Anzahl eingegeben wurde, muss ich das dann irgendwie wieder "auseinandernehmen", damit ich damit (nur die Artikel wo eine Anzahl eingetragen wurde) weiterarbeiten kann.

Vielleicht kennt ja jemand eine Lösung bzw. vielleicht wurde das Problem ja schonmal gepostet =/!

Gruß jenschke
 
Du kannst und musst Formularfeldern Namen geben:

PHP:
<input name="produkt1" type="text" size="30" maxlength="30" focus() value="">
<input name="produkt2" type="text" size="30" maxlength="30" focus() value="">
.
.
usw.

Je nachdem, ob du an die Folgeseite die Formulardaten per POST oder per GET die Daten schickst, kannst du dort dannn folgendermaßen die Eingaben abfangen:

PHP:
$produkt1=$HTTP_POST_VARS[produkt1];
$produkt2=$HTTP_POST_VARS[produkt2];

So müsste das gehen glaub ich .. Um die Daten immer verfügbar zu haben, würde ich mit Sessions arbeiten ;)

MfG Stefan
 
Original geschrieben von teppi

PHP:
$produkt1=$HTTP_POST_VARS[produkt1];
$produkt2=$HTTP_POST_VARS[produkt2];

Aaaaahhmmmm.....
$HTTP_POST_VARS
Die Superglobalen Arrays existieren zwar noch in der Form, werden aber soweit ich das weiß nicht mehr gern gesehen!
Nimm besser $_POST['produkt1'];
 
Original geschrieben von Operator_Jon
Aaaaahhmmmm.....
$HTTP_POST_VARS
Die Superglobalen Arrays existieren zwar noch in der Form, werden aber soweit ich das weiß nicht mehr gern gesehen!
Nimm besser $_POST['produkt1'];

$HTTP_POST_VARS ist abwärtskompatibel und $_POST nicht.

zum Nachschauen:
http://www.it-development.de/manual.php?p=language.variables.predefined

um noch einmal zum eigentlichen Problem zurückzukommen - ich verwende dabei Hidden-Fields kombiniert mit einem MengenInput, in welchen ich die Artikel-ID unterbringe:
PHP:
<!-- Artikel 1 -->
<input type="hidden" name="artikel_id[]" value="1">
<input type="text" size="4" name="menge[]" value="234">

<!-- Artikel 2 -->
<input type="hidden" name="artikel_id[]" value="2">
<input type="text" size="4" name="menge[]" value="3">

<!-- u.s.w. -->
Diese Inputfelder sollten sich in einem Formular befinden, um sie letztendlich auch nutzen zu können ;).
Nach dem Senden werden die Felder wie folgt ausgewertet:
PHP:
if(is_array($HTTP_POST_VARS['artikel_id']))
{
   foreach($HTTP_POST_VARS['artikel_id'] => AS $key => $value)
   {

      $artikel_id = $value;
      $menge = intval($HTTP_POST_VARS['menge'][$key]);
   }
}

Bloddy
 
Aus meinem kleinen schlauen Buch ;):
PHP Autoglobals-Anmerkung:
$_SERVER ist eine speziell reservierte PHP-Variable, die alle Informationen über den Webserver enthält. Diese Variable wird auch als auto- oder superglobal bezeichnet. Mehr Informationen darüber Sie auf der Manual-Seite über Autoglobals. Diese speziellen Variablen wurden in PHP 4.1.0 eingeführt. Vorher wurden stattdessen die älteren $HTTP_*_VARS-Arrays benutzt, also z.B. $HTTP_SERVER_VARS. Auch wenn diese Variablen nicht mehr genutzt werden sollen - sie existieren weiterhin.
 
und weil in deinem Buch drin steht, dass man die ältere abwärtskompatible Methode nicht mehr benutzen soll, springst du auch gleich von der Brücke gell? :-).

Bitte keine Grundsatzdiskussionen zu späten Morgen - $HTTP_POST_VARS funktioniert genauso wie $_POST auch wenn dein "schlaues" Buch dir rät, die alte Methode aussen vor zu lassen.

Bloddy
 
Ich rate Dir auch $_POST statt $HTTP_POST_VARS zu verwenden, da die Neuerung zum einen nicht erst seit gestern existiert, sondern bereits ab der PHP-Version 4.2.0 und andererseits, weil die Entwicklung nunmal nicht stehen bleibt. Zeig mir mal einen Top-Provider, der eine PHP-Version kleiner 4.2.0 einsetzt. Du verwendest dann wahrscheinlich auch nicht [phpf]file_get_contents[/phpf] oder die Konstante PREG_SET_ORDER in der Funktion [phpf]preg_match_all[/PHPF].

snuu
 
letztenendes ist es einfach egal, ob man nun $_POST oder $HTTP_POST_VARS benutzt - meinerseits besteht da eigentlich kein Diskussionsbedarf. Ich wollte halt lediglich darauf hinweisen, dass die alte Methode nicht falsch ist.

Bloddy
 
Zurück