Checkbox wird nicht übergeben

kavanin

Mitglied
Hallo,

möchte gerne mit Hilfe von checkboxen mailadresse weiter verarbeiten. Habe nun das Problem das die Daten nicht übergeben werden. Und wie mache ich es das mir das array aufgelistet wird?

mails_delete.php
PHP:
<form action="mails_delete_abf.php" method="post">
     echo '<td align="center"><input type="checkbox" name="email[]" value="$row->email"></td></tr>';
     <input type="submit" name="loeschen" value="L&ouml;schen">
</form>

mails_delete_abf.php
PHP:
if(isset($_POST['loeschen'])){
	$email = $_POST["$email"][];                        
       $email = implode("|",$email);
       echo $email;

Danke für die Hilfe schon mal im voraus!
 
Du erzeugst beim Absenden des Formulars ein Array mit allen selektierten Checkboxen.
-> $_POST['email']

dieses musst du mit einer schleife durchlaufen.
Ich weiß zwar nicht was du mit dem implode willst, aber du kannst die selektierten E-Mails auch innerhalb der Schleife ausgeben.
bsp
PHP:
// überprüfung ob gesendet
for($i = 0, n = sizeof($_POST['email']); $i<$n;i++){
  // Code zum nutzen der Infos der E-Mail checkboxen
}
 
@Back2toxic
nope. Er macht ja mit implode aus dem Array eine Stringliste.

Aber das Auslesen des Arrays ist falsch.
es hat ien [] zu viel
PHP:
//falsch:
    $email = $_POST["$email"][];  
//richtig:
    $email = $_POST["$email"];
 
Hi


der Code von Back2Toxic ist außerdem falsch ;) (sollte unexpexted String und Undefined Variable auslösen)

Um ein array komplett zu durchlaufen nutze entweder
PHP:
foreach( $array as $arr ){
  echo $arr;
]
oder
PHP:
for( $i = 0; $i < count($array); $i++ ){
  echo $array[$i];
}
 
Zuerst mal Danke für die schnellen Antworten!

Okay, habe jetzt das [] gelöscht aber totzdem wird mir nichts angezeigt! Dachte mir zuerst das ich den flaschen Pfad habe, aber das wars nicht. Denn wenn ich denn PHP Teil lösche wird mir zumindest die Headline angezeigt, aber sobald ich die Übergabe wieder einfüge kommt gar nichts mehr.

PHP:
<h1 class="headline">E-Mails</h1>
<?
if(isset($_POST['loeschen'])){
	$email = $_POST["$email"];               
       $email = implode("|",$email);
       echo $email;
?>
 
Wenn ich das Richtig verstanden habe dann soll ich statt
if(isset($_POST['loeschen'])){
if(isset($_POST['email'])){
einsetzen. Aber es sollte ja nur ausgeführt werden wenn der Button loeschen geklickt wurde! ODer habe ich irgendetwas falsch versenden?
 
Du hast mich da ein wenig falsch verstanden, wobei auch die Methode tadellos funktionieren würde ;)

Ich meinte eigentlich so:
PHP:
<?
if(isset($_POST['loeschen'])){
    $email = $_POST["email"];               
       $email = implode("|",$email);
       echo $email;
?>
 
Danke ja funktioniert jetzt zumindest mal das etwas übergeben wurde. Denn habe vergessen, dass ich die Klammer mit ; am Ende mache!

Aber leider wird mir nicht die Mail Adresse übergeben sondern nur $row->email.

PHP:
echo '<td align="center"><input type="checkbox" name="email[]" value="'.$row->email.'"></td></tr>';

Okay danke noch mal, jetzt funktioniert es! Wo der Fehler genau war keine Ahnung. Aber hauptsache es funktioniert :D
 
Zurück