mit Schleife einen Ausruck anhängen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mit Schleife einen Ausruck anhängen

    Hallo,
    ich hab mal wieder ne Frage.

    Also ich baue gerade an einer Anbindung eines Warenkorbes an Pay Pal mittels IPN (Wen es interessiert: Instant Payment Notification).
    Gegeben sei, dass die jeweiligen Daten in einem mutidimensionalen Array zur Verfügung stehen.

    Mit folgendem Code habe ich Zugriff auf die jeweiligen Daten:
    PHP-Code:
    $cart $GLOBALS["lv"]->ShoppingCart;
        
        foreach ( (
    $cart->ShoppingItems) as $key => $item) {
            print 
    '->Pal Pal<br />';
            
    /*
            print '<pre>';
            var_dump($item);
            print '</pre>';
            */
            
    $out " Artikelname: ".$item['serial']['shoptitle']."<br/>";
            
    $out .=" Anzahl: ".$item['quantity']."<br/>";
            
    $out .=" Preis: ".$item['serial']['price']."<br/>";
            print 
    $out."<br/>";
        } 
    Dieser Codescnippsel gibt das folgende aus:

    ->Pal Pal
    Artikelname: Karierter Pullover in Blau, Grün, Gelb
    Anzahl: 1
    Preis: 25

    ->Pal Pal
    Artikelname: Schach
    Anzahl: 1
    Preis: 44

    ->Pal Pal
    Artikelname: Pinke Skisocken
    Anzahl: 6
    Preis: 7




    Nun muss ich aber, damit Pay Pal alles richtig verarbeiten kann, 'hidden' inputs generieren. Das sollte so aussehen:

    PHP-Code:
    <input type="hidden" name="item_name_1" value="item_name_1" />
    <
    input type="hidden" name="quantity_1" value="1" />
    <
    input type="hidden" name="amount_1" value="1.00" />

    <
    input type="hidden" name="item_name_2" value="item_name_2" />
    <
    input type="hidden" name="quantity_2" value="1" />
    <
    input type="hidden" name="amount_2" value="2.00" />

    <
    input type="submit" value="Senden" /> 
    Nun, Pay Pal verlagt wie man hier sieht das Anhängen eines eindeutigen Wertes an den Namen (item_name_1), Anzahl (quantity_1) und Preis (amount_1), wobei item_name_x nur ein Platzhalter für den jeweiligen Wert ist und das Ganze fortlaufend sein muss.

    Ich möchte also so etwas wie das hier hinbekommen:

    ->Pal Pal
    Artikelname_1 : Karierter Pullover in Blau, Grün, Gelb
    Anzahl_1 : 1
    Preis_1 : 25

    ->Pal Pal
    Artikelname_2 : Schach
    Anzahl_2 : 1
    Preis_2 : 44

    ->Pal Pal
    Artikelname_3 : Pinke Skisocken
    Anzahl_3 : 6
    Preis_3 : 7

    Ich brauche also eine weitere Schleife innerhalb der foreach (Code ganze oben), damit ich mir daraus die 'hidden'-Felder zusammanbauen kann.

    Weiss jemand von euch Rat?

    Gruss
    Jan

  • #2
    Re: mit Schleife einen Ausruck anhängen

    kannst du mal verständlich erklären, wo denn jetzt dein problem liegt?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      einen zähler mitlaufen lassen, der zyklus für zyklus um 1 inkrementiert wird? hab dich aber auch kaum verstanden.

      Kommentar


      • #4
        Zähler mitlaufen lassen

        Ja, sorry, dass ich mich so unverständlich ausdrücke. Vielleicht ist es nun etwas verständlicher, da aufgeräumt:

        Hier nochmal der Code:
        PHP-Code:
        $cart $GLOBALS["lv"]->ShoppingCart;
            
            foreach ( (
        $cart->ShoppingItems) as $key => $item) {
             
               
        // in $item befinden sich die Werte des array      
               // nachfolgend gebe ich nur wegen debugging die Werte aus mit print
        // hier brauche ich die <input type="hidden" name="........
             
                
        $out " Artikelname: ".$item['serial']['shoptitle']."<br/>";
                
        $out .=" Anzahl: ".$item['quantity']."<br/>";
                
        $out .=" Preis: ".$item['serial']['price']."<br/>";
                print 
        $out."<br/>";
            } 
        Also der Code macht ja auch was.
        Immerhin bekomme ich die Daten ja schonmal. Also wenn ich den Code so wie er oben steht nehme wird folgendes ausgegeben:

        // Ausgabe mit print zwecks debugging
        Artikelname: Karierter Pullover in Blau, Grün, Gelb
        Anzahl: 1
        Preis: 25

        Artikelname: Schach
        Anzahl: 1
        Preis: 44

        Artikelname: Pinke Skisocken
        Anzahl: 6
        Preis: 7

        In diesem Beispiel sind genau 3 Produkte im Warenkorb.

        Es geht mir nur um Artikelname, Anzahl, Preis.

        Ich möchte mit einer weiteren Schleife innerhalb der foreach-Schleife
        'hidden' inputs generieren, für jeden Artikel aber mit angehängtem Ausdruck und fortlaufendem Integer.

        Artikelname_1,Anzahl_1,Preis_1

        Artikelname_2,Anzahl_2,Preis_2

        etc..

        Also etwa genau sowas:

        PHP-Code:
        // erster Artikel:
        <input type="hidden" name="Artikelname_1" value="<?php $item['serial']['shoptitle'?>" />
        <input type="hidden" name="Anzahl_1" value="<?php $item['quantity'?>" />
        <input type="hidden" name="Preis_1" value="<?php $item['serial']['price'?>" />

        // zweiter Artikel:
        <input type="hidden" name="Artikelname_2" value="<?php $item['serial']['shoptitle'?>" />
        <input type="hidden" name="Anzahl_2" value="<?php $item['quantity'?>" />
        <input type="hidden" name="Preis_2" value="<?php $item['serial']['price'?>" />
        Ist das verständlicher?

        Jan

        Kommentar


        • #5
          Original geschrieben von penizillin
          einen zähler mitlaufen lassen, der zyklus für zyklus um 1 inkrementiert wird?

          Kommentar


          • #6
            stehst du wirklich so auf dem Schlauch?

            Steck einfach deinen Code mit den Inputs wie du ihn grad gepostet hast, in die Schleife mit rein, lass in der Schleife noch nen Zähler mitlaufen und häng den Wert von diesem Zähler noch an den Input-Namen dran - fertig.
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Ja sowas. Vielen Dank. Manchmal hab ich ein Brett vorm Kopf!

              Nachfolgendes noch zur Ansicht:

              PHP-Code:
                  $GLOBALS["lv"] = new shop($GLOBALS["demoshop"]);

                  
              $cart $GLOBALS["lv"]->ShoppingCart;
                  
                  
                  foreach ( (
              $cart->ShoppingItems) as $key => $item) {
                      
                      for(
              $i1$i<sizeof($item); $i++){
                         
                      
              $out ="<form><input type='hidden' name='Artikelname_".$i."' value='".$item['serial']['shoptitle']."'/>";
                      
              $out .="<input type='hidden' name='Anzahl_".$i."' value='".$item['quantity']."' />";
                      
              $out .="<input type='hidden' name='Preis_".$i."' value='".$item['serial']['price']."' /></form>";
                      
                      
              // $out = " Artikelname: ".$item['serial']['shoptitle']."<br/>";
                      // $out .=" Anzahl: ".$item['quantity']."<br/>";
                      // $out .=" Preis: ".$item['serial']['price']."<br/>";
                      
              print $out."<br/>";
                      }
                  } 
              Ich glaub ich stand wirklich auf'm Schlauch

              Danke.


              --

              Kommentar


              • #8
                ich glaub dass das nicht ganz so klappt wie du dir es grad vorstellst - hast schon mal den Ausgabequellcode angeschaut wenn du mehrere Artikel hast? Schau dann mal auf die Namen der Hidden-inputs.
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  Ja um genau zu sein, tut es jetzt damit.

                  PHP-Code:

                  $GLOBALS
                  ["lv"] = new shop($GLOBALS["demoshop"]);

                      
                  $cart $GLOBALS["lv"]->ShoppingCart;
                      
                      
                  $i 0;
                      foreach ( (
                  $cart->ShoppingItems) as $key => $item) {
                          
                  $i++; //zählt bei jeder iteration um eins hoch
                           
                          
                  $out ="<input type='hidden' name='Artikelname_".$i."' value='".$item['serial']['shoptitle']."'/>";
                          
                  $out .="<input type='hidden' name='Anzahl_".$i."' value='".$item['quantity']."' />";
                          
                  $out .="<input type='hidden' name='Preis_".$i."' value='".$item['serial']['price']."' />";

                          print 
                  $out."\n";
                      } 

                  Kommentar


                  • #10
                    Ist doch viel leichter als du dachtest, oder?
                    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                    Schön - etwas Geschichte kann ja nicht schaden.
                    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                    Kommentar


                    • #11
                      ja, aber wie man sieht ist es sehr hilfreich hier zu posten. Irgendwer wird einem schon in den Hintern treten

                      Danke.

                      Kommentar


                      • #12
                        hehe... lustiger thread. dein code sah viel zu intelligen taus, als das man so eine frage vermutet haette so eine frage haette ich grad mal von mir erwartet
                        Immer schoen den Quelltext brechen....
                        Sorry: UMBRECHEN!

                        Kommentar

                        Lädt...
                        X