Checkboxen für eine einkaufsliste

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

  • Checkboxen für eine einkaufsliste

    Hi Leutz,
    Progge seid Jahren VB aber kenn mich mit php nicht aus.
    Darum habe ich ein,-zwei Fragen an euch Profis.

    Ich will eine WebSite machen, in der ich z.B. mehrere Kästen untereinander habe.

    In Jedem Kasten soll es so aussehen:
    _______________________________
    | VB-Tutorial Buch Band1 |
    | 29,95€ x Bestellen |
    | *new* |
    |______________________________|

    Da wo das "x" steht, soll die Checkbox(en) stehen.
    Wenn ich nun z.B. 10 von diesen Kästen habe, und davon
    bei 3 einen Haken setze, möchte ich das eine php
    mir immer den Titel, den Preis und die Info
    sprich:

    VB-Tutorial Buch Band1
    29,95€
    *new*

    von allen untereinander auflistet. (Am besten zwischen jedem neuen
    Produkt eine Leerzeile.

    Wenn mir jemand sagen kann, wie ich das mit der Checkbox und das
    er mit automatisch die Infos mitliefert erklären kann,
    dann wär das echt hammer gut.

    Ich hoffe das ist nicht zu aufwendig.
    Ich bin selber Programmierer und kann mir anhand eines Beispieles auch den Rest meist selber zusammenbasteln.

    Vielen vielen Dank im Vorraus.

    -Gruß

  • #2
    Was gefunden, aber hilft nicht.

    Ich habe was gefunden:
    Klick Mich
    Aber das funktioniert bei mir nicht.
    Ich kann zwar alles wunderbar auswählen, aber wenn ich dann den Button klicke, sagt mein Browser mir das er dir Site nicht finden konnte.

    Why ?

    Danke

    Kommentar


    • #3
      Naja, am besten speicherst du die Informationen irgendwo, bestenfalls in einer Datenbank. Die Checkboxen kriegen als Übergabewert die ID des Artikels in der Datenbank. Beim Absenden des Formulars hast du dann (wenn du alles richtig benannt hast...) ein Array mit den "angehakten" Artikel-ID's, das du durchläufst und aus der DB holst.

      Also z.B.
      im Formular:
      <input type="checkbox" name="article[]" value="23">bla bla....

      in der Auswertung (Pseudocode):

      PHP-Code:
      foreach ($article as $id) {
      //hole die Daten aus DB
      // und gebe sie aus usw.

      Ich hoffe, ich ahbe dein Problem richtig verstanden und konnte dir ein paar Anregungen geben...

      Kommentar


      • #4
        Datenbank

        Das mit der ID und der DatenBank ist ne Super Idee.
        Da ich php kein stück kann, wie kann ich sowas realisieren?
        Mit foreach usw. ?
        ich weiß ja nichteinmal, wie ich wenn ich eine Checkbox anklicke etwas auswerten kann.

        Also nehmen wir mal an, ich habe eine Checkbox.
        Ich möchte wenn sie abgehakt wurde, das mit z.B. für das
        besagte buch die ID "22" übermittelt wird.

        Wie übermittelt man das?
        Ich denke mit "$ID = "22" oder so. richtig?
        also "$" ist sogesehen eine dekleration?
        Sprich wenn ich 4 Checkboxen engeklickt habe,
        werden alle ID´s in der "$ID" gespeichert.

        z.B. sieht das dann so aus: "$ID = "22,34,56,23" richtig?
        Oder total falsch? -.-

        Das wenn ich auf einen BUtton klicke (auch kein plan wie ich das mache)
        das dann ein echo alle ID´s die ich abgehakt habe nochmal anzeigt.

        Kannst du mir sagen wie das geht?

        Danke

        Kommentar


        • #5
          also, wenn wir bei meinem Beispiel bleiben, wird mit dem Formular das Array $article übermittelt.

          Das foreach holt sich jetzt aus dem Array die Werte nacheinander raus. Mit richtigen PHP-Code würdest du z.B. so darauf zurückgreifen:
          PHP-Code:
          foreach ($_POST['article'] as $id) {
          //hole die Daten aus DB
          $query mysql_query("select bla from tabelle where id = $id;");
          // und gebe sie aus usw.

          In dieser Schleife fehlt natürlich noch vieles, z.B. die Weiterverarbeitung der Daten aus der DB....

          Aber da du noch wenig Kenntnisse in PHP hast, empfehle ich dir www.schattenbaum.net . Da sind auch ähnliche Beispiele zu finden, glaube ich. Und alles ist sehr gut erklärt.

          Kommentar


          • #6
            Sooo..

            Da ich VB progge, komm ich rel. schnell in php rein.
            (Ist auch recht leicht, php)
            Also ich habe als Beispiel und zum testen nun das hier geschrieben:
            PHP-Code:
            <form action="auswerten.php" method="post">

            <
            input type="hidden" name="sent" value="yes"
            <
            input type="checkbox" name="produkt[]" value="22">&nbsp;Produkt 1<br>
            <
            input type="checkbox" name="produkt[]" value="23">&nbsp;Produkt 2<br>
            <
            input type="checkbox" name="produkt[]" value="24">&nbsp;Produkt 3<br>
            <
            input type="checkbox" name="produkt[]" value="25">&nbsp;Produkt 4<br>
            <
            input type="checkbox" name="produkt[]" value="26">&nbsp;Produkt 5<br>
            <
            input type="submit" Value="Bestellen">

            </
            form
            Und die Auswerten.php:
            PHP-Code:
            <?php
            $sent 
            $HTTP_POST_VARS["sent"];
            $produkt $HTTP_POST_VARS["produkt"];
                    

            if (
            $sent == 'yes') {
            $produkt_text implode(', ',$produkt);

            echo 
            '<p>ID:'.$produkt_text.'</p>';
            }
            ?>
            So habe ich das gemacht.
            Ich lasse mir dann die ID-Nummern einfach per Email zuschicken und von meinem VB Prog auswerten.

            Ist das alles so richtig?
            Oder hast du ne Idee oder nen Fehler gefunden?

            Danke

            Kommentar


            • #7
              Noma ne Frage dazu...

              Hi,
              wieso klappt das net so wie ich will -.-
              Kann wer helfen:

              Index.php
              PHP-Code:
              <form action="bestellung.php" method="post">


              <
              input type="hidden" name="sent" value="yes"
              <
              input type="checkbox" name="produkt[]" value="22">&nbsp;Produkt 1<br>
              <
              input type="checkbox" name="produkt[]" value="23">&nbsp;Produkt 2<br>
              <
              input type="checkbox" name="produkt[]" value="24">&nbsp;Produkt 3<br>
              <
              input type="checkbox" name="produkt[]" value="25">&nbsp;Produkt 4<br>
              <
              input type="checkbox" name="produkt[]" value="26">&nbsp;Produkt 5<br>
              <
              input type="submit" Value="Bestellen">

              </
              form
              bestellung.php
              PHP-Code:

              <?php

              $sent 
              $HTTP_POST_VARS["sent"];
              $produkt $HTTP_POST_VARS["produkt"];
                      

              if (
              $sent == 'yes') {
              $produkt_text implode(', ',$produkt);

              echo 
              '<p>ID:'.$produkt_text.'</p>';
              }


              ?>
              <form action="versenden.php" method="post">
              <input type="hidden" name="sent" value="yes"> 
              <input type="submit" Value="Bestellung abschicken">
              </form>
              versenden.php
              PHP-Code:
              <?php
              $sent 
              $HTTP_POST_VARS["sent"];
              $produkt $HTTP_POST_VARS["produkt_text"];

              if (
              $sent == 'yes') {

              echo 
              '<p>ID:'.$produkt.'</p>';
              echo 
              'Ihre Bestellung wurde soeben abgeschickt';
              }
              ?>
              Ich habe jetzt ca. 2 Stunden dran rumexperimentiert und den Fehler nicht gefunden.
              Wer kann helfen?
              Vielen dank

              Kommentar


              • #8
                WILL mir keiner helfen? -.-
                Kann man nicht von <form></form> einen string übergeben?

                Kommentar


                • #9
                  Ich habe mir eben mal diene Sachen angeschaut. Verstehe die Struktur nicht so ganz. Klappt denn die Ausgabe der angeklickten ID's?

                  btw: Verwende lieber
                  PHP-Code:
                  $_POST['produkt'
                  anstatt der $HTTP_POST_VARS["produkt"].

                  An das zweite Formluar übergibst du deine Id's nicht mehr, so wie ich das gesehen habe. In PHP ist darauf zu achten, dass Variablen immer nur innerhalb eines Scriptes gültig sind, wenn das vom Server abgearbeitet wurde, sind sie in anderen Scripten nicht mehr vorhanden, es sei denn, sie werden übergeben.

                  Kommentar


                  • #10
                    Danke für den Tipp mit "$_POST["produkt"];"
                    Also die Index.php gibt der bestellung.php die Nummern (ID) der abgehakten Checkboxen weiter.
                    Das wird auch soweit in der bestellung.php angezeigt.

                    Das funktioniert einwandfrei.
                    Ich weiß nur, das ich mit:
                    PHP-Code:
                    <form action="versenden.php" method="post">
                    <
                    input type="hidden" name="sent" value="yes"
                    <
                    input type="hidden" name="prod" value='$produkt_text'
                    <
                    input type="submit" Value="Bestellung bestätigen">
                    </
                    form
                    Einen Button erstellt. Wenn ich darauf klicke, geht er zur "versenden.php"
                    Ich will aber das er aus der datei das $produkt mitübermittelt.

                    Aber wie?
                    Meine php sieht so aus:
                    PHP-Code:
                    <?php
                    $sent 
                    $_POST["sent"];
                    $produkt $_POST["produkt"];
                            
                    if (
                    $sent == 'yes') {
                    $produkt_text implode(', ',$produkt);
                    echo 
                    '<p>ID:'.$produkt_text.'</p>';
                    }
                    ?>
                    <form action="versenden.php" method="post">
                    <input type="hidden" name="sent" value="yes"> 
                    <input type="hidden" name="prod" value='$produkt_text'> 
                    <input type="submit" Value="Bestellung bestätigen">
                    </form>
                    Er holt sich das "$produkt = $_POST["produkt"];" aus der index.php.
                    Dann zeigt er mit "Echo" die ID´s nochmal an.
                    Dann will ich, wenn ich auf "Bestellung bestätigen" klicke,
                    das dann die "versenden.php" aufgerufen wird.
                    Das geht auch.
                    ABER ich weiß nun nicht, wie ich aus der "bestellung.php" die Variable "$produkt_text" an die "versenden.php" weiterleiten kann.

                    Kannst du mir da helfen ?

                    Kommentar


                    • #11
                      Ich habe meine 3php´s auf einen Server geladen.
                      Kannst dir das ja mal in 5sek. anschauen.
                      In der 3ten php steht:
                      ID:
                      Ihre Bestellung wurde soeben abgeschickt

                      Aber halt hinter "ID:" sollen noch die ID´s stehen.
                      Wie in der php davor.

                      Aber ich kann das nicht von der "bestellung.php" auf die "versenden.php" übertragen.

                      Hier der Test

                      Kommentar


                      • #12
                        Kannst du mal bitte in die beiden letzten Scripte ein
                        PHP-Code:
                        print_r($_POST); 
                        an den Anfang stellen und die Ausgabe davon posten? Komme zur Zeit ein bisschen durcheinander, was wohin übergeben wird...

                        So wie es aussieht, verwendest du aber unterschiedliche Variablenbezeichnungen, die nicht mit den Übergabewerten übereinstimmen.

                        Kommentar


                        • #13
                          Gut., hab ich reingeschrieben.

                          Kommentar


                          • #14
                            Okay, man sieht daran, dass an versenden.php nur $sent übermittelt wird, da im POST-Array nicht weiter drin ist. Mach mal in bestellung.php ein
                            PHP-Code:
                            $prod serialize($produkt); 
                            und im Formular ein hidden-Feld
                            PHP-Code:
                            <input type='hidden' name='prod' value='$prod' 
                            Dann machst du in versenden.php

                            PHP-Code:
                            $produkte unserialize($_POST['prod']); 
                            und schon hast du dort das Array $produkte...

                            Kommentar


                            • #15
                              Boah, ich könnt kotzen -.-
                              Das will einfach nicht gehen.
                              Er zeigt keinen Error an oder sowas.
                              Er übergibt es einfach nicht.
                              Mal die beiden php´s: (Vll. siehst du den fehler auf die schnelle)
                              bestellung.php
                              PHP-Code:

                              <?php
                              print_r
                              ($_POST);
                              $sent $_POST["sent"];


                              $produkt $_POST["produkt"];

                                      
                              if (
                              $sent == 'yes') {
                              $produkt_text implode(', ',$produkt);

                              echo 
                              '<p>ID:'.$produkt_text.'</p>';
                              }
                              $prod serialize('$produkt_text');
                              ?>

                              <form action="versenden.php" method="post">
                              <input type="hidden" name="sent" value="yes"> 
                              <input type='hidden' name='prod' value='$prod' >
                              <input type="submit" Value="Bestellung bestätigen">
                              </form>
                              Versenden.php:
                              PHP-Code:


                              <?php
                              print_r
                              ($_POST);
                              $sent $_POST["sent"];
                              $produkt unserialize($_POST['prod']);

                              if (
                              $sent == 'yes') {


                              echo 
                              '<p>ID:'.$produkt.'</p>';
                              echo 
                              'Ihre Bestellung wurde soeben abgeschickt';
                              }
                              ?>
                              *verzweifel...

                              Dank dir schonmal.

                              Kommentar

                              Lädt...
                              X