Gib der Checkbox als namen die UserID, die Du eh schon ausgelesen hast - am besten als Array wie z.B. $user[userid]
Dann kannst Du das Array z.B. auf der nächsten Seite mit einer each-Schleife oder ähnlichem abarbeiten.
Klar was ich meine?
Na wo sind unsere PHP-Profi's.
Folgendes Problem:
Ich lese sämtliche Personen aus einer Datenbank aus, und möchte nun per Checkboxen auswählen an welche Personen eine Mail geschickt werden soll.
Das ganze befindet sich in einer Schleife.
Hier mal ein Codebeispiel:
Nun möchte ich, beim klicken auf den "Sende-Button" an alle Ausgewählten Personen eine Mail senden.PHP-Code://Auslesen der DB
$db = mysql_connect($dbserver,$dbuser,$dbpasswort);
$sqlab = "select * from kunden";
$res = mysql_db_query($dbname, $sqlab);
$num = mysql_num_rows($res);
echo "<table border=1><tr><td width='500'>";
echo "Empfänger bitte auswählen";
echo "<table>";
//Schleife
for ($i=0; $i<$num; $i++)
{
$id = mysql_result($res, $i, "uid");
$vor = mysql_result($res, $i, "vorname");
$nach = mysql_result($res, $i, "nachname");
$mail = mysql_result($res, $i, "mail");
//Auflisten der Ergebnisse mit Checkboxen
echo "<tr><td><input type='checkbox' name='mailsend' value='1'></td><td><b>$nach</b></td><td>$vor</td></tr>";
}
//Sendebutton und Tabellenende
echo "<input type='submit' name='send' value='Senden'>";
echo "</table>";
echo "</center>";
echo "</form>";
Wie realisiere ich das am besten ???
Ich hoffe ich habe mich klar ausgedrückt.
P.S.
Das wichtigste ist in diesem Zusammenhang das Aufrufen der "Ausgewählen" Datensätze, den Formmailer bekomme ich schon hin.
Anzeige
Gib der Checkbox als namen die UserID, die Du eh schon ausgelesen hast - am besten als Array wie z.B. $user[userid]
Dann kannst Du das Array z.B. auf der nächsten Seite mit einer each-Schleife oder ähnlichem abarbeiten.
Klar was ich meine?
Ja schon klar, ich müsste es also in ein Array lesen.
Dann müsste der Checkboxtag folgendermassen aussehen:
Oder ???PHP-Code:<input type='checkbox' name='mailsend[]' value='$id'>
ACHTUNG: So:
Bei name='mailsend[] werden die Werte fortlaufend überschrieben und nur die letzte Checkbox ausgelesen, da ja alle so den gleichen Namen hätten.PHP-Code:<input type='checkbox' name='mailsend[<?php echo $id; ?>]'>
Ich würd als name aber nicht die ID nehmen, sondern am besten die Email Adresse, damit man dann nicht noch eine extra Schleife erstellen muss. Also z.b. so:
Um den Ausgewählten dann die eMail zu senden, musst du nur noch per Variable die BCC Empfänger einstellen.PHP-Code:<input type='checkbox' name='mailsend[<?php echo $email; ?>]'>
Wie du dann die eMail sendest, ist auf http://www.selfphp.info/funktionsref...ionen/mail.php bestens erklärt. Bei weiteren Fragen stehe ich natürlich gerne zur Verfügung.
Viel Erfolg
3rAz0r
Jo, stimmt - ist ja noch einfacher und spart eine weitere Datenbankabfrage,obwohl wegen der Anrede in der Mail wahrscheinlich die Namen eh' noch einmal ausgelesen werden, bzw. mit übergeben werden müssen.
Danke euch mal![]()
Ich habe es jetzt aber doch ganz anders gemacht.
Am oberen Script habe ich nichts geändert.
Habe aber folgendes hinzugefügt.
Die letzten Printanweisungen hatte ich nur zum testen eingebaut um zu sehen was zurückgeliefert wird.PHP-Code:if (isset($mailsend))
{
reset($mailsend);
while(list($k, $uid) = each($mailsend))
{
$data = mysql_connect($dbserver,$dbuser,$dbpasswort);
$sql = "select vorname from kunden where uid = $uid";
$sql2 = "select nachname from kunden where uid = $uid";
$sql3 = "select mail from kunden where uid = $uid";
$resa = mysql_db_query($dbname, $sql);
$resb = mysql_db_query($dbname, $sql2);
$resc = mysql_db_query($dbname, $sql3);
$vorname = mysql_result($resa, "vorname");
$nachname = mysql_result($resb, "nachname");
$email = mysql_result($resc, "mail");
print "$vorname\n";
print "$nachname\n";
print "$email\n";
Wie ihr seht, bin ich nun doch über die ID gegangen und habe dann einfach die entsprechenden werte nochmal aus der DB ausgelesen.
So werden mir nun immer die Ausgewählten Werte zurückgeliefert.
Nun muss ich nur noch die Variablen in das Mailscript übernehmen, aber das ist kein Problem.
Ist zwar eine DAU-Lösung, aber es funzt
Stimmt auchOriginal geschrieben von Pennywise
Jo, stimmt - ist ja noch einfacher und spart eine weitere Datenbankabfrage,obwohl wegen der Anrede in der Mail wahrscheinlich die Namen eh' noch einmal ausgelesen werden, bzw. mit übergeben werden müssen.
@Astro: Schlau gelöst
cya
THX![]()
Das Problem war ja auch, das ich mit einem Wert alleine nichts anfangen konnte, zu der ID brauche ich ja auch immer die dazugehörigen Werte (Name etc)
Aber Penny hatte mich mit dem Array erst in die richtige Richtung geschoben.
Hehe :-p
Viel Spaß noch!
Lesezeichen