checkbox auswerten und per email versenden

chekov

Grünschnabel
hallo leute,

ich habe 9 tabellen mit jeweils einer checkbox
und am ende einen "absenden" button

nun möchte ich eine oder mehrere checkboxen aktivieren und auf den button klicken um ne mail zu verschicken mit dem inhalt: name der tabelle und 1 das die checkbox aktiviert wurde.

nur hab ich keine ahnung wie ich das mit php machen kann...

bin ziemlich neu auf dem gebiet und versuchs mir selbst beizubringen..

hab schon bisschen rumprobiert aber so richtig funktionieren wills nicht

hier mein php code:

PHP:
<?php

if (isset($_POST['button'])) // wenn das formular abgesendet wurde...
{  
    $err = array();  // array worin fehler gespeichert werden
    
    if (!isset($_POST['mark']))  // wenn keine checkbox selektiert wurde...
    {  
        array_push($err, "Bitte mindestens eine Checkbox auswählen!");    
    } 
    else 
    {   
        $selektiert = ""; // anlegen des strings der nach der nachfolgenden schleife die ausgewählten values/werte enthält
        
        // $_POST['mark'] ist ein array, daher schleife(foreach)
        foreach ($_POST['mark'] as $checkbox) // für jeden wert im array wird folgendes gemacht...
        {  
            $selektiert .= $checkbox . ", "; // der wert wird dem string $selektiert hinzugefügt
        }    
        
        // mail absenden
        $empfaenger = "beispiel@gmx.de"; 
        $betreff = "Feedback";
        $mailtext = $sender hat folgende Angebote angekreuzt: $selektiert;
        
        if (!mail($empfaenger, $betreff, $mailtext))  // wenn mail nicht versendet wurde...
        {  
            array_push($err, "e-Mail konnte nicht versendet werden!"); 
        }
        else(mail($empfaenger, $betreff, $mailtext))  // wenn mail gesendet wurde... 
        { 
          echo ("Mail wurde versendet!");
        } 
    }
    
    // fehler array ausgeben wenn fehler vorhanden
    if (!empty($err))  // wenn array nicht leer ist...
    {  
        foreach ($err as $report) // in einer schleife die fehlermeldungen ausgeben...
        {  
            echo ($report);
        }                                   
    }     
}                       

?>
 
Zuletzt bearbeitet:
Hi,
die folgende Zeile ist falsch!
PHP:
$mailtext = $sender hat folgende Angebote angekreuzt: $selektiert;
Text wird in Anführungszeichen geschrieben. ;)

PHP:
$mailtext = $sender." hat folgende Angebote angekreuzt: ".$selektiert;
 
Wenn du uns verrätst was denn GENAU nicht funktioniert, können wir dir besser helfen.
Irgendwelche Debug-Infos? Test-Ausgaben gemacht?


Der 2. Aufruf der Mail ist unnötig, hier wird die Mail 2x versendet
PHP:
// 1. mal
if (!mail($empfaenger, $betreff, $mailtext))  // wenn mail nicht versendet wurde...
        {  
            array_push($err, "e-Mail konnte nicht versendet werden!"); 
        }
// 2.mal
        else(mail($empfaenger, $betreff, $mailtext))  // wenn mail gesendet wurde... 
        { 
          echo ("Mail wurde versendet!");
        }
 
Zuletzt bearbeitet:
ja wenn ich den button betätige dann kommt einfach ne leere seite.
ne mail wird auch ned verschickt...

PHP:
        $mail_ok = mail($empfaenger, $betreff, $mailtext);

        if (!$mail_ok) 
        {   
            // kein mail versendet...
            array_push($err, "e-Mail konnte nicht versendet werden!");
        } 
        else 
        {  
            // mail gesendet...  
            echo ("Mail wurde versendet!"); 
        }

habs jetzt so gemacht mit den mails geht das auch?
 
ja wenn ich den button betätige dann kommt einfach ne leere seite.
ne mail wird auch ned verschickt...

PHP:
        $mail_ok = mail($empfaenger, $betreff, $mailtext);

        if (!$mail_ok) 
        {   
            // kein mail versendet...
            array_push($err, "e-Mail konnte nicht versendet werden!");
        } 
        else 
        {  
            // mail gesendet...  
            echo ("Mail wurde versendet!"); 
        }

habs jetzt so gemacht mit den mails geht das auch?

Genau, so ist es richtig.
Wenn du eine leere Seite erhältst, deutet das auf einen Fehler hin.
Schreibe am Anfang deines Scriptes:

PHP:
error_reporting(E_ALL);
ini_set('display_errors', 1);

Dann sollten auch die Fehler angezeigt erden.


Dieses hier:
PHP:
 foreach ($_POST['mark'] as $checkbox) // für jeden wert im array wird folgendes gemacht...
        {  
            $selektiert .= $checkbox . ", "; // der wert wird dem string $selektiert hinzugefügt
        }
könntest du auch verkürzen:

PHP:
$selektiert = implode(',', $_POST['mark']);
 
php code

PHP:
^<?php

error_reporting(E_ALL);  // alle fehler melden
ini_set('display_errors', 1);  // fehler ausgeben 

if (isset($_POST['button'])) // wenn das formular abgesendet wurde...
{  
    $err = array();  // array worin fehler gespeichert werden
    
    if (!isset($_POST['mark']))  // wenn keine checkbox selektiert wurde...
    {  
        array_push($err, "Bitte mindestens eine Checkbox auswählen!");    
    } 
    else 
    {   
        $selektiert = ""; // anlegen des strings der nach der nachfolgenden schleife die ausgewählten values/werte enthält
        
        // $_POST['mark'] ist ein array, daher schleife(foreach)
        //foreach ($_POST['mark'] as $checkbox) // für jeden wert im array wird folgendes gemacht...
        //{  
            //$selektiert .= $checkbox . ", "; // der wert wird dem string $selektiert hinzugefügt
        //}
        $selektiert = implode(',', $_POST['mark']);
             
        // mail absenden
        $empfaenger = "beispiel@gmx.de"; 
        $betreff = "Feedback";
        $mailtext = $sender. "hat folgende Angebote angekreuzt:" .$selektiert;
        $mail_ok = mail($empfaenger, $betreff, $mailtext);

        if (!$mail_ok) 
        {   
            // kein mail versendet...
            array_push($err, "e-Mail konnte nicht versendet werden!");
        } 
        else 
        {  
            // mail gesendet...  
            echo ("Mail wurde versendet!"); 
        }  
    }
    
    // fehler array ausgeben wenn fehler vorhanden
    if (!empty($err))  // wenn array nicht leer ist...
    {  
        foreach ($err as $report) // in einer schleife die fehlermeldungen ausgeben...
        {  
            echo ($report);
        }                                   
    }     
}                       

?>


html code

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
  
  <!-- Beginn Tabellen-->
  <table cellspacing="10" cellpadding="20">
   
  <tr>
<td>
 <!--Tabelle1-->
 <div align="right">
 <table border="1" rules="groups" bordercolor="black">
  <thead>
  <tr>
  <td align="center"><input type="checkbox" name="mark[]" value="beispiel1"><i><h1>Beispiel</h1></i></td>
  </tr>
  </thead>
  <tfoot>
  <tr>
  <td>Beispieltext</td>
  </tr>
  </table>
  </td>
  
  
<td>
 <!--Tabelle2-->
 <div align="right">
 <table border="1" rules="groups" bordercolor="black">
  <thead>
  <tr>
  <td align="center"><input type="checkbox" name="mark[]" value="beispiel2"><i><h1>Beispiel</h1></i></td>
  </tr>
  </thead>
  <tfoot>
  <tr>
  <td>Beispieltext</td>
  </tr>
  </table>
  </td>
  
  
<td>
 <!--Tabelle3-->
 <div align="right">
 <table border="1" rules="groups" bordercolor="black">
  <thead>
  <tr>
  <td align="center"><input type="checkbox" name="mark[]" value="beispiel3"><i><h1>Beispiel</h1></i></td>
  </tr>
  </thead>
  <tfoot>
  <tr>
  <td>Beispieltext</td>
  </tr>
  </table>
  </td>
 </tr> 
 
 
 
 <tr>
<td>
 <!--Tabelle4-->
 <div align="right">
 <table border="1" rules="groups" bordercolor="black">
  <thead>
  <tr>
  <td align="center"><input type="checkbox" name="mark[]" value="beispiel4"><i><h1>Beispiel</h1></i></td>
  </tr>
  </thead>
  <tfoot>
  <tr>
  <td>Beispieltext</td>
  </tr>
  </table>
  </td>
  
  
<td>
 <!--Tabelle5-->
 <div align="right">
 <table border="1" rules="groups" bordercolor="black">
  <thead>
  <tr>
  <td align="center"><input type="checkbox" name="mark[]" value="beispiel5"><i><h1>Beispiel</h1></i></td>
  </tr>
  </thead>
  <tfoot>
  <tr>
  <td>Beispieltext</td>
  </tr>
  </table>
</td>  
  
<td>
 <!--Tabelle6-->
 <div align="right">
 <table border="1" rules="groups" bordercolor="black">
  <thead>
  <tr>
  <td align="center"><input type="checkbox" name="mark[]" value="beispiel6"><i><h1>Beispiel</h1></i></td>
  </tr>
  </thead>
  <tfoot>
  <tr>
  <td>Beispieltext</td>
  </tr>
  </table>
  </td>
 </tr> 
 
 <tr> 
 <td>
 <!--Tabelle7-->
 <div align="right">
 <table border="1" rules="groups" bordercolor="black">
  <thead>
  <tr>
  <td align="center"><input type="checkbox" name="mark[]" value="beispiel7"><i><h1>Beispiel</h1></i></td>
  </tr>
  </thead>
  <tfoot>
  <tr>
  <td>Beispieltext</td>
  </tr>
  </table>
  </td>
  
  
<td>
 <!--Tabelle8-->
 <div align="right">
 <table border="1" rules="groups" bordercolor="black">
  <thead>
  <tr>
  <td align="center"><input type="checkbox" name="mark[]" value="beispiel8"><i><h1>Beispiel</h1></i></td>
  </tr>
  </thead>
  <tfoot>
  <tr>
  <td>Beispieltext</td>
  </tr>
  </table>
  </td>
  
<td>
 <!--Tabelle9-->
 <div align="right">
 <table border="1" rules="groups" bordercolor="black">
  <thead>
  <tr>
  <td align="center"><input type="checkbox" name="mark[]" value="beispiel9"><i><h1>Beispiel</h1></i></td>
  </tr>
  </thead>
  <tfoot>
  <tr>
  <td>Beispieltext</td>
  </tr>
  </table>
  </td>
  </tr>

 

<form action="newsletter_10.01.2012.php" method=post>
<input type=submit name=button value="Feedback abschicken"/>


</table>
  </body>
</html>

ich hab den ihnhalt der tabellen mal rausgenommen damits bisschen übersichtlicher ist!
 
Zuletzt bearbeitet:
Zurück