Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP5 und Checkboxen bei Formular

Einklappen

Neue Werbung 2019

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

  • PHP5 und Checkboxen bei Formular

    Hallo,

    trotz Suchens habe ich keine Antwort / Lösung für ein Problem gefunden:

    Ich möchte ein Kontaktformular erstellen, bei dem der User mit Hilfe von Checkboxen angeben kann, welche Informationen er wünscht. Bisher habe ich (gekürzt):

    HTML-FORMULAR:
    <form name="formular" method="post" action="mail.php">



    <input type="checkbox" name="thema[]" value="checkbox">
    Thema 1


    <input type="checkbox" name="thema[]" value="checkbox">
    Thema 2

    <input type="checkbox" name="thema[]" value="checkbox">
    Thema 3 </p>
    </form>

    MAIL.PHP:

    $themen = $_REQUEST['thema'];

    if (isset($themen) && $themen <> "" ) {
    foreach($themen as $infoszu) {
    $message .= 'Informationen zu: ' .$infoszu. "\n";
    $message .= 'Anzahl der Elemente: ' .count($themen). "\n";
    }
    } else {
    $message .= 'Allgemeine Kontaktanfrage.';
    }


    Soweit, so gut. Das Ergebnis sieht nur leider so aus:

    Informationen zu:
    Anzahl der Elemente: 1

    Meine Frage: was mache ich falsch???

    Gruss
    letsgo



    [/code]


  • #2
    Wert von value immer der selbe -> wie willst Du sie unterscheiden?
    count($themen) innerhalb der foreach-Schleife? Wie oft willst Du das denn wissen?
    Wozu die Zuweisung $themen=$_REQUEST['thema']?

    PHP-Code:
    <html>
        <body>
    <?php
    if (isset($_REQUEST['themen']) && is_array($_REQUEST['themen'])) {
        echo 
    'Anzahl der Elemente: 'count($_REQUEST['themen']), "
    \n"
    ;
        foreach(
    $_REQUEST['themen'] as $thema) {
            echo 
    'Informationen zu: 'htmlentities($thema), "
    \n"
    ;
        }
    }
    ?>
            <form name="formular" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                


                    <input id="thema1" type="checkbox" name="themen[]" value="Thema1" />
                    <label for="thema1">Thema 1</label>
                    

                    <input id="thema2" type="checkbox" name="themen[]" value="Thema2" />
                    <label for="thema2">Thema 2</label>
                    

                    <input id="thema3" type="checkbox" name="themen[]" value="Thema3" />
                    <label for="thema3">Thema 3</label>
                    

                    <input type="submit" />
                </p>
            </form>
        </body>
    </html>

    Kommentar


    • #3
      http://faq-phpfriend.de/q/q-formular-checkbox.html

      schau dir mal die beiden verschiedenen fälle zur auswertung von boxen an.

      Kommentar


      • #4
        Hallo,

        danke für Eure Antworten.

        @Bruchpilot: count($themen) ist nur zu Testzwecken gedacht. Die VALUE-Werte sind natürlch unterschiedlich, ich habe nur ein Beispiel gepostet. Und: Deine Variante habe ich ausprobiert, aber dasErgebnis bleibt gleich: ich bekomme die Werte von VALUE nicht übermittelt.

        @Pyro: das habe ich mir schon durchgelesen, BEVOR ich hier gepostet habe. Mein Problem ist und bleibt aber, dass die Werte nciht richtig übertragen werden.

        Gruss
        letsgo

        Kommentar


        • #5
          Zitat von letsgo
          @Bruchpilot: count($themen) ist nur zu Testzwecken gedacht. Die VALUE-Werte sind natürlch unterschiedlich, ich habe nur ein Beispiel gepostet. Und: Deine Variante habe ich ausprobiert, aber dasErgebnis bleibt gleich: ich bekomme die Werte von VALUE nicht übermittelt.
          Ganz prima *daumenhoch* Einfach mal irgendwas posten was so ähnlich is, dann nichtmal sorgfältig sein. Ich sag dir den Fehler nicht.

          Kommentar


          • #6
            @Zergling: Demnächt poste ich das ganze Script, das ca. 7 DinA4 Seiten lang ist, kein Problem.
            Und wenn Du den Fehler nicht verrätst, denke ich ganz einfach, dass du ihn selber nicht kennst.

            Kommentar


            • #7
              Wenn ich krank bin schick ich doch auch nicht meinen Bruder zum Arzt um ihn untersuchen zu lassen ^^ Meine Güte.

              Und du meinst, nur weil du mich unberechtigt blöd anmachst sag ich dir zumindest einen immer wieder gern gemachten Anfängerfehler bezüglich Checkboxen? Nö.

              Kommentar


              • #8
                ich geb dafür einen kleinen tipp:

                mit var_dump($_REQUEST) bekommst du genau das geliefert, was php auch weiß. damit solltest du relativ gut sehen können, was du falsch machst.

                und zweitens:

                mit error_reporting(E_ALL) werden dir ein paar ganz interessante fehler angezeigt, die du machst.

                Kommentar


                • #9
                  Hallo axo,

                  danke für den Tip!

                  Ich habe jetzt die Bestätigung für das, was ich mir schon gedacht habe: die Werte der CheckBoxen werden überhaupt nicht übermittelt - zumindest nicht als array.

                  Leider weiss ich nicht WARUM die nicht übermittelt werden. Ich muss zugeben, ich bin kein Programmierer, sondern Sportler, muss aber dringend was "reparieren", da unser Programmierfreak längere Zeit ausfällt.

                  Werde ich mir jetzt jemanden suchen müssen, der mir das Problem gegen Geld löst...?

                  Danke trotzdem

                  letsgo

                  Kommentar


                  • #10
                    1. error_reporting(E_ALL); benutzen
                    2. Values der Checkboxen UNIQUE (sprich eineindeutig) machen
                    3. $_REQUEST ist sowas von unsicher.... nutz doch $_POST, wenn du schon dein Formular damit nutzt
                    4. ein formular ohne Button?

                    Lösung:

                    Code:
                    <form name="formular" method="post" action="test.php">
                    
                    
                    
                    <input type="checkbox" name="thema[]" value="thema1">
                    Thema 1
                    
                    
                    <input type="checkbox" name="thema[]" value="thema2">
                    Thema 2 
                    
                    <input type="checkbox" name="thema[]" value="thema3">
                    Thema 3 </p>
                    <input name="ok" value="ok" type="submit">
                    </form>
                    mail.php
                    Code:
                    <?
                    // ausgabe was übergeben wird
                    echo '<pre>';
                    print_r($_POST);
                    echo '</pre>';
                    ?>
                    Nun siehst du folgendes (wenn du alle 3 Checkboxen aktiviert hast):
                    Code:
                    Array
                    (
                        [thema] => Array
                            (
                                [0] => thema1
                                [1] => thema2
                                [2] => thema3
                            )
                    
                        [ok] => ok
                    )
                    damit sollte bewiesen sein, dass es geht
                    Testlink (nur temporär): http://www.warrenfaith.de/test.php
                    Developers-Guide.net
                    Senseless

                    Kommentar


                    • #11
                      Zitat von letsgo
                      Ich muss zugeben, ich bin kein Programmierer, sondern Sportler, muss aber dringend was "reparieren", da unser Programmierfreak längere Zeit ausfällt.
                      Die Begründungen, warum man sich an den Grundlagen vorbeimogeln will, sind immer wieder die Highlights des Tages.

                      Ein Hinweis: Ein Forum ist nicht dafür da, Grundlagen zu vermitteln, die muss man schon alleine lernen.

                      11.10. Wie kann man Checkboxen verarbeiten?
                      http://www.php-faq.de/q/q-formular-checkbox.html

                      Gruß
                      phpfan

                      Kommentar


                      • #12
                        Zitat von WarrenFaith
                        4. ein formular ohne Button?
                        ...er hat doch nur irgendwas gepostet, sonst hätte er ja 7 DIN A4 Seiten posten müsen

                        Problem sollte aber jetzt gelöst sein mit den Antworten.

                        Kommentar


                        • #13
                          Hm, mein Beispiel ist getestet und ist hier voll funktionstüchtig. var_dump($_REQUEST) gibt garnichts aus? Dann läuft da massiv was falsch.

                          Was gibt
                          PHP-Code:
                          <?php echo phpversion(); ?>
                          aus?
                          Im Zweifelsfall, benutzte Webserver- und php-Installation wegwerfen und xampp zum Testen verwenden.

                          Kommentar


                          • #14
                            Hi, Danke!

                            habe alles so gemacht, aber es klappt halt immer noch nciht. Die Werte von thema[] werden einfach nicht übergeben...

                            Gruss

                            letsgo

                            Kommentar


                            • #15
                              phpfan hat doch diesen Link gepostet:
                              http://www.php-faq.de/q/q-formular-checkbox.html

                              Was verstehst du daran nicht??

                              Kommentar

                              Lädt...
                              X