Heiner: Update Funktion im Warenkorb (ausgabe durch Schleife)

Hallo,

ich lasse mir meinen Warenkorb über eine while Schleife ausgeben.
Nun möchte ich eine Update-Funktion einbauen, damit sich die Anzahl der zu bestellenden Artikel ändern lässt.

Das mache ich mit einem Formular.

Mein Problem ist, das immer nur der letzte Artikel angesprochen wird und nicht der tatsächliche bei dem ich mich befinde.
Das liegt wohl an der Schleife.

Habe schon darüber nachgedacht einen <a href> einzubauen, doch leider kann ich ja dann den in das Input Feld geschriebenen Wert
nicht mitübergeben...

Weiss jemand wie ich dieses Problem lösen kann?
Bin echt am verzweifeln.

Der Gruß

  1. Hallo Heiner,

    Das mache ich mit einem Formular.
    Das liegt wohl an der Schleife.

    jein, das liegt daran dass Dein Formularfeld immer den gleichen Namen hat und er demzufolge alle übermittelt und dann logischerweise die letzte Überschreibung gültig ist.

    Die Lösung ist also entweder ein array
    name = "blabla[]"

    oder Du baust Dir selbst einen index dran
    name = "blabla <? =$i?>"

    Habe schon darüber nachgedacht einen <a href> einzubauen, doch leider kann ich ja dann den in das Input Feld geschriebenen Wert
    nicht mitübergeben...

    könntest Du schon, müsstest es aber mit Javascript machen und dass ist IMHO keine gute Lösung.

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    ->Alles ist gut wenn es aus Schokolade ist
    1. Hallo Romy,

      vielen Dank für deine Antwort. Ich blicke nicht so ganz wie du das mit dem Array meinst...

      Hier mal mein ein Teil von meiner Schleife. Wie muss ich das da einbauen???

      --------------------------------------------------------------------

      $sql = "SELECT * FROM warenkorb WHERE BID='$bid'";
      $result = mysql_query($sql);
      while($row = mysql_fetch_array($result)){

      <tr>
       <td class="td">
       <form action="'.$PHP_SELF.'" method="GET" name="form1">
       <input type="text" value="'.$row['anzahl'].'" name="anzahl">
       <input type=image src="aktualisieren.gif" alt="Akutalisieren">
       <input type="hidden" value="'.$row['artikelnr'].'" name="artikelnr">
       <input type="hidden" value="'.$row['BID'].'" name="bid">
       <input type="hidden" value="1" name="send"></td>
      </tr></form>
      }

      --------------------------------------------------------------------

      Viele Grüsse
      Heiner

      1. Hallo Heiner,

        »»mysql_query($sql);

        while($row = mysql_fetch_array($result)){

        <tr>
        <td class="td">
        <form action="'.$PHP_SELF.'" method="GET" name="form1">
        <input type="text" value="'.$row['anzahl'].'" name="anzahl[]">

        ^^^^^^^^^^^^^^^^^^^^

        <input type=image src="aktualisieren.gif" alt="Akutalisieren">
        <input type="hidden" value="'.$row['artikelnr'].'" name="artikelnr[]">

        ^^^^^^^^^^^^^^^^^^^^^^^

        <input type="hidden" value="'.$row['BID'].'" name="bid[]">

        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

        <input type="hidden" value="1" name="send"></td>
        </tr></form>
        }

        auf der Auswertungsseite kannst Du dann das array direkt ansprechen
        d.h Du prüfst , welches gesetzt ist und sprichst es dann mit $array[$i]
        oder so ähnlich an

        ciao
        romy

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        ->Alles ist gut wenn es aus Schokolade ist
        1. Hallo Romy,

          vielen Dank nochmal für deine Antwort. Leider
          raff ich´s immer noch nicht so ganz, aber egal...

          Viele Grüsse
          Heiner

          1. Hallo Heiner,

            vielen Dank nochmal für deine Antwort. Leider
            raff ich´s immer noch nicht so ganz, aber egal...

            sorry, hab nur theoretisches Wissen, hab es selbst auf diese Weise noch nie gelöst.

            Aber Fakt ist: durch name="name[]" erzeugst Du pro Schleifendurchlauf ein array mit den verschiedenen Inhalten name[1] = "Bier" ; name[2] = "Wein"
            usw.

            Problemstellung: auf der Auswertenseite musst Du jetzt das Richtige ansprechen.
            ich kenne noch keine wirklich effiziente Lösung.
            (mit Javascript wäre alles kein Problem, man kann sich aber nicht darauf verlassen, dass dies auch eingeschaltet ist)

            Vielleicht solltest Du die ganze Problematik anders angehen
            zB. viele kleine Formen bauen, dann wird nur das geänderte abgeschickt
            -> ist glaube ich nicht effizient

            oder lass den User, wenn er was ändern will dies nicht direkt sondern auf einer neuen Seite machen. ZB. er klickt auf bearbeiten und kommt auf eine Seite mit Textfeldern, die kann er ändern und das ganze abschicken.

            es gint sicherlich auch noch andere Möglichkeiten

            hih
            ciao
            romy

            --
            DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
            ->Alles ist gut wenn es aus Schokolade ist
            1. Vielen vielen Dank für die nützlichen Tips Romy :)

              ih!
              Liebe Grüsse
              Heiner