Checkboxen in sendmail-funktion

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

  • Checkboxen in sendmail-funktion

    Hallo Community,

    ich habe auf meiner Seite eine Sendmail-Funktion erstellt. Der Leser ruft ein Kontaktformular aus, füllt die entsprechenden Textfelder aus und klickt anschließend auf Abschicken. Die Daten werden dann an die sendmail.php geschickt und ausgewertet. Zur Verdeutlichung ausschnitte aus dem Kontaktformular und der sendmail.php:

    PHP-Code:
    Kontaktformular

    <form action="sendmail.php" method="POST">
    <
    table width="100%">
    <
    tr>
    <
    td width="25"></td>
    <
    td width="95"><strong>Firma/Name:*</strong></td>
    <
    td width="498">
    <
    input name="NAME" size="50" type="text">
    </
    td>
    </
    tr>
    ... 
    PHP-Code:
    sendmail.php

    <?php
    // Kontaktformular
        
    if(isset($_POST['NAME'], $_POST['STRASSE_1'], $_POST['POSTFACH'], $_POST['ORT'], $_POST['EMAIL']))

             {

      
    $to "123@abc.de";
      
    $subject 'Kontaktformular-Anfrage von '.$_POST['NAME'];
      
    $message '

    <table align="center" width="500">
    <form method="POST">
    <tr>
    <td>Name</td>
    <td><input type="text" size="50"  name="NAME" value="'
    .$_POST['NAME'].'"></td>
    </tr>
    ...
    $headers = "Content-type: text/html; charset=iso-8859-15\r\n";
    $headers .= '
    From'.$_POST['EMAIL'].'';
    mail($to, $subject, $message, $headers);
    Die übergebenen Daten werden also ausgewertet und anschließend an die entsprechende E-Mail-Adresse weitergeleitet. Das klappt wunderbar, doch jetzt habe ich ein Problem:

    Ich möchte nämlich Checkboxen einführen, so nach dem Motte: "Ich interessiere mich für folgende Sachen". Jetzt habe ich mich schon im Netz totgesucht und zuindest herausgefunden, dass man die einzelnen Checkboxen mit name="form[]" benennen und mit einer foreach-Schleife auslesen lassen kann.

    Anschließend kann man dann die markierten Checkboxen im Browser anzeigen lassen. Doch das ist nichts für mich, ich möchte ja überprüfen, ob eine Box markiert ist und dann in der zu generierenden E-Mail diese auch anzeigen lassen.

    PHP-Code:
    Checkboxen

    <input name="form[]" type="checkbox">...habe Interesse in CPU
    <input name="form[]" type="checkbox">...habe Interesse in VGA
    <input name="form[]" type="checkbox">...habe Interesse in ...
    <
    input name="form[]" type="checkbox">...habe Interesse in ... 
    Wie kann ich nun auswerten, dass bsp. zwei bestimmte Boxen markiert sind und diese dann in der zu generierenden E-Mail anzeigen? Ich stelle mir irgendwie vor, dass ich das auswerte und dann irgendwie eine Überprüfung einpflege:

    PHP-Code:
    Vorschlag in sendmail.php

    <input name="form[]" type="checkbox">if (checkbox markiert) {setze html-tag für checkbox markiert}...habe Interesse in ... 
    Wer weiß Rat, wie man das umsetzen kann...

  • #2
    gibt den Checkboxen auch values, dann weißt du auch, was gecheckt ist

    Außerdem sollst du nicht nur auf isset prüfen, sondern auch auf !empty, da Felder eventuell leer sein können.

    Kommentar


    • #3
      Ok, vielen Dank erst einmal für die zügige und prompte Antwort
      Können wir vlt einmal anhand eines Beispiels zeigen, wie ich vorzugehen habe? So sehen die Checkboxen nun im Kontaktformular aus:

      PHP-Code:
      Kontaktformular

      <input name="form[]" type="checkbox" value="computer">...infos über computer
      <input name="form[]" type="checkbox" value="vga">...infos über grafikkarten
      <input name="form[]" type="checkbox" value="hdd">...infos über Festplatten
      ... 
      Wie kann ich nun in der sendmail.php auswerten, welche Checkboxen aktiv sind und welche nicht. Ich möchte also, dass mir die sendmail.php eine E-Mail generiert, die in irgendeiner Form beinhaltet, welche markiert wurden.

      Meinen Denkansatz habe ich ja bereits oben gepostet. Nur weiß ich nicht wie man das umsetzen kann (wie kann man auf eine bestimmte Checkbox zugreifen?) oder ob diese Vorgehensweise überhaupt sinnvoll ist.

      Kommentar


      • #4
        PHP-Code:
        echo '<pre>';
        print_r($_POST);
        echo 
        '</pre>'
        Wäre eventuell besser, wenn du in die eckigen Klammern bei den Namen der Boxen den Wert schreibst
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          [B]
          PHP-Code:
          echo '<pre>';
          print_r($_POST);
          echo 
          '</pre>'
          Hmm, print gibt mir doch etwas auf dem Bildschirm aus. Wenn der Leser auf abschicken klickt, soll dieser doch nicht angezeigt bekommen, für welche Themen er sich interessiert. Was ich gerne möchte ist, dass gecheckt wird, was der Leser angeklickt hat. Dann soll die sendmail.php darauf reagieren. Ungefähr so:

          PHP-Code:
          sendmail.php

              
          if(isset($_POST['NAME'], $_POST['STRASSE_1'], $_POST['POSTFACH'], $_POST['ORT'], $_POST['EMAIL']))

                   {

            
          $to "abc@123.de";
            
          $subject 'Kontaktformular-Anfrage von '.$_POST['NAME'];
            
          $message '


          <table align="center" width="500">
          <form method="POST">
          <tr>
          <td>Name</td>
          <td><input type="text" size="50"  name="NAME" value="'
          .$_POST['computer'].'" .if (checkbox aktiviert){echo 'checked';}></td>
          </tr>
          ...
          ...
          ...
          $headers = "Content-type: text/html; charset=iso-8859-15\r\n";
          $headers .= '
          From'.$_POST['EMAIL'].'';
          mail($to, $subject, $message, $headers); 
          Aber wie kann ich die IF-Bedingung so erstellen, dass kontrolliert wird, ob die Checkbox aktiviert ist oder nicht?Wenn ja wird in dem HTML-Tag die option checked eingefügt und in der E-Mail dürfte dann ein häkchen erscheinen.

          Wäre eventuell besser, wenn du in die eckigen Klammern bei den Namen der Boxen den Wert schreibst
          Soll ich in die eckigen klammern denselben Inhalt wie bei Value schreiben? Weiß nicht, was das jetzt bezwecken soll?

          Kommentar


          • #6
            print_r dient ja auch nur dazu DIR zu zeigen, was übertragen wurde ... mach was draus. übrigens, NICHT gecheckte checkboxen werden auch nicht übertragen
            Kissolino.com

            Kommentar

            Lädt...
            X