Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular mit Checkboxauswahl für mehrere Empfänger

Einklappen

Neue Werbung 2019

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

  • Formular mit Checkboxauswahl für mehrere Empfänger

    Hallo zusammen,

    ich hab ein kleines Problem und hoffe mir kann jemand von euch helfen oder wenigstens auf die richtige Spur bringen

    Wir haben auf unserer Intranetseite ein kleines Feedbackformular wo Mitarbeiter anonym eine Nachricht an die Geschäftsleitung senden können, bislang
    ging die Nachricht nur immer an einen Mitarbeiter, das funktioniert auch super, aber ich möchte jetzt per Checkbox eine Auswahl einbauen wo man auswählen kann
    an wen aus der Geschäftsleitung die Nachricht versendet werden soll. Es soll auch möglich sein mehrere Empfänger anzugeben.

    Nun zu meinem Code:
    PHP-Code:
    if(isset($_POST['submit'])) {
          
    //Klasse einbinden 
          
    require('phpmailer/class.phpmailer.php'); 
           
    //Instanz von PHPMailer bilden 
           
    $mail = new PHPMailer();
           
    //Absenderadresse der Email setzen 
           
    $mail->From "feedback@Firma.de"
           
    //Name des Abenders setzen 
           
    $mail->FromName "Firma Feedbackformular"
          if(isset(
    $empfaenger) == 'empfaenger1'){ 
           
    $mail->AddAddress "ABC@firma.de"
            }
           elseif(isset(
    $empfaenger) == 'empfaenger2'){ 
           
    $mail->AddAddress "DEF@firma.com"
           }
           elseif(isset(
    $empfaenger) == 'empfaenger3'){ 
           
    $mail->AddAddress "GHI@firma.de";
           }

           
    //Betreff der Email setzen 
           
    $mail->Subject "Feedbackformular";
           
    //Text der EMail setzen
           
    $mail->Body =" bla bla bla...... 
    Hier die Checkboxen im Formular:

    PHP-Code:
    <tr><td>Senden an:</td><td colspan="3"> <input name="empfaenger" type="checkbox" value="empfaenger1"#>Michael ABC  <input name="empfaenger" type="checkbox" value="empfaenger2"#>Josef DEF   <input name="empfaenger" type="checkbox" value="empfaenger3"#>Georg GHI</tr> 
    Ich bekomme aber immer die Fehlermeldung: You must provide at least one recipient email address.
    Ok er fügt den Empfänger anscheinend nicht ein, aber warum?

    mfg ROLS733

  • #2
    isset($empfaenger) ergibt true oder false. In deinen if's steht im Endeffekt also sowas:
    PHP-Code:
    if(true == 'empfaenger1'

    Kommentar


    • #3
      Debugge: Woher kommt $empfaenger? Finde heraus wo das befüllt wird und warum da scheinbar nichts drinnen steht. Ausserdem musst du dann einen Fehler werfen wenn jemand nichts ausgewählt hat etc etc..

      Siehe: https://php-de.github.io/jumpto/faq/#debugging

      Und: https://php-de.github.io/jumpto/auswahlfelder/
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Danke für die Antworten. Haben mich auf jeden Fall auf die richtige Spur gebracht.
        Ich habs jetzt so gelöst.
        Hier für Leute die das gleiche Problem haben:

        PHP-Code:
        if(@$_POST["empfaenger1"] == "ok") {
        if(isset(
        $_POST['submit'])) {
              
        //Klasse einbinden
              
        if (!class_exists("phpmailer")) {
               require_once(
        'phpmailer/class.phpmailer.php');
                }
         ....
        gesamtes Mail script incl Empfänger wird ausgeführt....
            }

        das gleiche dann nochmal für empfänger2 und empfänger3
        Wichtig hier ist: da sonst nur eine email an den ersten Empfänger der ausgewählt wurde geschickt wird.
        PHP-Code:
              if (!class_exists("phpmailer")) {
               require_once(
        'phpmailer/class.phpmailer.php');
                } 

        Hier noch die Prüfung ob etwas ausgewählt wurde:

        PHP-Code:
        <script type="text/javascript">

             function 
        chkFormular () {
               if (
        document.Formular.text.value == "") {
              
        alert("Bitte geben Sie einen Text ein!");
              
        document.Formular.text.focus();
              return 
        false;
              }

              if(
        document.forms["Formular"].elements["empfaenger1"].checked) {
               return 
        true;
               }

              if(
        document.forms["Formular"].elements["empfaenger2"].checked) {
               return 
        true;
               }

              if(
        document.forms["Formular"].elements["empfaenger3"].checked) {
               return 
        true;
               }
              else {
               
        alert("Bitte mindestens einen Empfaenger auswaehlen!");
               
        document.forms["Formular"].elements["empfaenger3"].focus();
               return 
        false;
              }
             }    

              
        // hier angekommen ist alles OK


              
        </script> 
        ROLS

        Kommentar


        • #5
          PHP-Code:
                //Klasse einbinden
                
          if (!class_exists("phpmailer")) {
                 require_once(
          'phpmailer/class.phpmailer.php');
                  }
           ....
          gesamtes Mail script incl Empfänger wird ausgeführt....
              }
          das gleiche dann nochmal für empfänger2 und empfänger3
          Das ist aber Käse so. Wozu denkst du gibt es denn addAddress()?


          Siehe auch deren Beispiel:
          PHP-Code:
          $mail->addAddress('joe@example.net''Joe User');     // Add a recipient
          $mail->addAddress('ellen@example.com');               // Name is optional 
          https://github.com/PHPMailer/PHPMailer#a-simple-example

          Dann sparst du dir auch den class_exists() Kram.

          LG
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar

          Lädt...
          X