• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Warenkorb

Status
Für weitere Antworten geschlossen.

rosi123

Neues Mitglied
Ich mach gerade so was ähnliches wie einen onlineshop, dabei muss der user erst die kategorie auswählen und bekommt dann alle produkte der kategorie angezeigt. daneben erscheint ein Feld menge, das den namen menge+id des produktes hat...jetzt habe ich auf der nächsten seite ein problem, weil ich nicht weiß, wie ich das mengenfeld durch post übergeben kann...kann mir hier jemand helfen? im anhang ist die seite, die die Produktliste erzeugt.

Code:
<?php
$link = mysql_connect("localhost", "root", "");
mysql_select_db("foodcoach",$link);
if (!$link) 
   die("DB-Server kann nicht erreicht werden");
if (!mysql_select_db("foodcoach"))
   die("Kann die Datenbank nicht anwählen");
session_start();
if(!isset($_SESSION['user_res']) || $_SESSION['user_res'] == "")
    die("Required Session not found!");
    $ses = $_SESSION['user_res'];
    $user_data = explode("_",$ses);
    $uID = $user_data[0];    
?>
<html>
<head>
<title>Artikelliste</title>
</head>
<body>
<form action="warenkorb.php" method="post">
   <table><tr><td><b>Produkt</b></td><td><b>Kalorien</b></td><td><b>Menge</b></td></tr>
   <?php
   $kategorie=$_POST['Kategorie'];
   if($kategorie=="Bitte ausw&auml;hlen")
   {
           echo "Bitte wählen Sie eine Kategorie aus! <a href=Artikel.php>Zurück</a>";
   }
   else{
   $sql="SELECT produkt, kcal, energieid FROM energie WHERE Kategorie='$kategorie'";
   $result=mysql_query($sql);
   while($row=mysql_fetch_assoc($result)){
    echo "<tr><td><b>".$row['produkt']."</b></td><td><b>".$row['kcal']."</b></td>
    <td><input name='menge".$row['energieid']."' type='text' value='0'></td></tr>";
    /*
    also es müsste so funktionieren 
    beim Warenkorb gibst du beim link die id mit und fragst dann die menge.id ab
    und dann wird die menge mit der kalorienanzahl multipliziert und mitsamt der user(kunde?)id in die db hineingeschrieben bei mehr Fragen--> pause oder community ;)
    */
    
    }
    
}
echo "<tr><td><input type='submit' value='zum Warenkorb' name='zum Warenkorb' type='button'></tr></tr>";
?>

</table>
</form>
</body>
</html>
 
nein...dieses Problem ist gelöst...es geht jetzt um den warenkorb und wie ich die menge weiterbringe...bin am verzweifeln...
 
Also auf jeden Fall solltest Du die Fehler im HTML-Code beheben. In der Zeile, in der Du die Spaltenüberschriften (die man übrigens mit <th> auszeichnet, nicht mit <td>!) schreibst, endest Du die Codezeile mit </tr>.
Als nächstes kann das echo kommen, in der Nu den Nutzer aufforderst, eine Kategorie auszuwählen. Plain Text darf aber nicht nach einem </tr> kommen. Du musst zuerst eine neue Zeile und auch eine neue Zelle aufmachen.

Übergeben werden Deine Felder übrigens automatisch, wenn sie innerhalb eines <form> liegen und einen "name" haben. Da brauchst Du gar nichts zu tun.
Wenn Du Dir dann auf der anderen Seite Dein $_POST ausgeben lässt, dann siehst Du, dass alle Eingabefelder als Variablennamen vorkommen.

So, Dein Feld heißt ja nicht "menge", sondern "menge" mit was hinten dran, nämlich $row['energieid']. Das musst Du natürlich berücksichtigen. Wie der Name gebildet wird, bzw. woher 'energieid' kommt, das musst Du ja selbst am besten wissen.

Wenn Dir das alles nicht weiter hilft, was fehlt Dir dann?
 
Es geht um genau dieses Mengenfeld....ich weiß nicht wie ich den wert aus diesem feld bekomme...also die Menge, die zum artikel mit der ID gehört...Das mit dem Html ist im moment nicht so wichtig...ich brauche nur den wert aus dem mengenfeld (falls nicht 0), weil ich den dann mit den kalorien multiplizieren muss...irgendwo logisch...brauch ich ja in einem shop auch, nur dass die kalorien im shop der preis darstellt....wahrscheinlich ist die Lösung ganze einfach, aber bin in php nicht gerade pro...
 
Die Felder bekommst Du, wenn Du Deine Daten per method="post" übergibst, immer mit $_POST["feldname"], genau wie bei Deinem select-Problem auch!

Wie der Name Deines Mengenfeldes ist, kann Dir hier niemand sagen, das baust Du aus dem String "menge" und einer Variablen auf. Der Inhalt der Variablen kommt aus Deiner Datenbank, und die Inhalte Deiner Datenbank kennen wir nicht!
 
Das mit dem Post ist mir schon klar, aber ich habe keine ahnung wie ich mir diesen string zusammenbaue, kann ja nicht in einem POST noch eine variable abfragen oder??
 
Du hast nicht die leiseste Ahnung von der ganzen Materie, oder? Wäre es nicht besser, das durch jemanden machen zu lassen, der sich auskennt? Vor allem, wenn das ein Warenkorb wird, wo es finanzielle Probleme geben kann, wenn es nicht richtig läuft? [Anm.: Ist keine Beleidigung, sondern ein gut gemeinter Rat]

Denn, das Zusammenbauen machst Du doch im Formular auch, da kannst Du doch nicht sagen, dass Du nicht weißt, wie das geht. Hier der Code aus dem Formular:
Code:
name='menge".$row['energieid']."'
Genauso geht das auch auf der anderen Seite. Strings verknüpft man mit einem Punkt.
Code:
$_POST["menge".$energieid]
$_POST["menge$energieid"]
sind zwei Möglichkeiten.

Ansonsten gibt es die Funktion array_keys(), mit der Du alle Keys eines Arrays abfragen kannst.
PHP: array_keys - Manual

Das wird nützlich, wenn Dein auswertendes Script die $energieid auch nicht kennt. array_keys() gibt Dir ein Array mit Strings zurück, in dem dann alle Feldnamen aus dem Formular stehen. Mit substr() kannst Du dann überprüfen, ob eines oder mehrere dieser Felder mit "menge" beginnen. Auch mit dieser Funktion kannst Du Deine energieid ermitteln, falls Du das brauchst.
PHP: substr - Manual

Konnte ich Licht ins Dunkel bringen?
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben