Ankündigung

Einklappen
Keine Ankündigung bisher.

Checkbox in Formmailer ausgeben

Einklappen

Neue Werbung 2019

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

  • Checkbox in Formmailer ausgeben

    ich habe in nem php-file (emailformular) 5 checkboxes.
    diese sind folgender maßen deklariert in html:

    PHP-Code:
    <input name="Ich möchte euch besuchen" type="checkbox" value="<?php echo $_POST['besuch']; ?>"/>Ich möchte euch besuchen<br />
                                    <input name="Ich wünsche weitere Informationen" type="checkbox" value="<?php echo $_POST['info']; ?>"/>Ich wünsche weitere Informationen<br />
                                    <input name="Ich suche ein Zimmer" type="checkbox" value="<?php echo $_POST['zimmer']; ?>"/>Ich suche ein Zimmer<br />
                                    <input name="Ich möchte einen Stadtplan von München" type="checkbox" value="<?php echo $_POST['plan']; ?>"/>Ich möchte einen Stadtplan von München<br />
                                    <input name="Ich möchte Biertrinken und Feiern" type="checkbox" value="<?php echo $_POST['feiern']; ?>"/>Ich möchte Biertrinken und Feiern

    und so in php:

    PHP-Code:
        if(trim($_POST['besuch']) == "") {
            
    $error 0;
        }
        if(
    trim($_POST['info']) == "") {
            
    $error 0;
        }
        if(
    trim($_POST['zimmer']) == "") {
            
    $error 0;
        }
        if(
    trim($_POST['plan']) == "") {
            
    $error 0;
        }
        if(
    trim($_POST['feiern']) == "") {
            
    $error 0;
        } 

    Ausgabeinfo in Mail:

    PHP-Code:
    $content .= "Ich möchte euch besuchen: ".$_POST['besuch']."<br />\n";
            
    $content .= "Ich wünsche weitere Informationen: ".$_POST['info']."<br />\n";
            
    $content .= "Ich suche ein Zimmer: ".$_POST['zimmer']."<br />\n";
            
    $content .= "Ich möchte einen Stadtplan von München: ".$_POST['plan']."<br />\n";
            
    $content .= "Ich möchte Biertrinken und Feiern: ".$_POST['feiern']."<br />\n";
            
    $content .= "Betreff: ".$_POST['betreff']."<br />\n";            
            
    $content .= "Nachricht: ".$_POST['other']."<br />\n"


    Bis jetzt ist es so, dass es nicht offentsichtlich ist, welche Box ausgewählt wurde.

    Was muss ich da ändern, dass man in der Mail erkennt, in welche/n Box/en ein Häkchen gesetzt wurde??

    schon mal vielen Dank

  • #2
    Hey, machs doch so:

    Code:
    <?php
    <input type="checkbox" name="haekchen[]" value="eins" />
    <input type="checkbox" name="haekchen[]" value="zwei" />
    <input type="checkbox" name="haekchen[]" value="drei" />
    <!-- .. -->
    Jetzt werden ja nur angekreuzte Checkboxen uebertragen, deshalb kannst du das so auslesen:
    PHP-Code:
    <?php
    $blnHasCheckboxes 
    array_key_exists("haekchen"$_POST);
    if (
    $blnHasCheckboxes) {
      
    $strText implode(", "$_POST["haekchen"]); // "eins, zwei"
    } else {
      
    $strText "nichts angekreuzt";
    }
    ?>
    Durch die eckigen Klammern bekommst du nun einen Array zurueck, den du mit implode() komma-separiert in einen String schreibst.

    Gruss,
    c

    Kommentar


    • #3
      Hallo Renovatio,

      du hast einen Bug in deiner HTML-Definition. Wenn du schon

      name="Ich wünsche weitere Informationen"
      schreibst, musst du den Inhalt der Checkbox auch mit

      PHP-Code:
      $_REQUEST['Ich wünsche weitere Informationen'
      addressieren.

      --> verschoben nach Anfänger

      Kommentar


      • #4
        Ja und solche langen Namen für Formularfelder sollte man auf jeden Fall vermeiden!

        Kommentar


        • #5
          Du hast doch beim Formular die name="xyz" mit dem du erkennen kannst in welche checkbox welche Antwort geschrieben wurde... mit dieser info... xyz

          Gruß
          Volker

          Kommentar

          Lädt...
          X