• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

ALLE Checkboxen abfragen

Status
Für weitere Antworten geschlossen.

Chrisok

Neues Mitglied
Also, habe 6 checkboxen und eine textbox...

Code:
        <form action="/form_style.php" method="POST">
            <p>Ihr habt 6 Stimmen... Nachdem jeder abgestimmt hat, zähle ich das Ergebnis aus!<br>
            Erforderlich sind Username und mindestens eine abgegebene Stimme!</p>
            <p>User:<input type="text" name="Username"></p>
            <input type="checkbox" name="checkb" value="Style1">Style1<br>
            <input type="checkbox" name="checkb" value="Style2">Style2<br>
            <input type="checkbox" name="checkb" value="Style3">Style3<br>
            <input type="checkbox" name="checkb" value="Style4">Style4<br>
            <input type="checkbox" name="checkb" value="Style5">Style5<br>
            <input type="checkbox" name="checkb" value="Style6">Style6<br>
            <input type="submit" value="Absenden" id="button">
        </form>
Der dazugehörige PHP-Code:

PHP:
<?php
$user = "$_POST[Username]";
$eintrag = "$_POST[checkb]\n"; 
$datei = fopen ("style_vote.txt","a+");
fwrite($datei, $user and $eintrag);
fclose($datei);

if ($eintrag == true) 
    {
    echo "Danke für die Abstimmung $user! Du hast dich für $eintrag entschieden";
    }
else
    {
    echo "Hier ist wohl was schief gelaufen... Sagt mir Bescheid, wenn ihr das hier lest!";
    }
?>
Wie man sieht will ich den Usernamen und die angewählten Checkboxen in die "style_vote.txt" schreiben!
Funktioniert auch so alles ganz gut... Allerdings wird nur die letzte angeklickte Checkbox reingeschrieben und die Datei wird nicht aktualisiert, wenn ichs mehrmals abschicke... Jemand ne Idee was ich falsch mache?
 
Deine checkboxen haben alle den gleichen Namen. Du musst jeder allerdings einen eigenen Namen geben - der Wert (value) ist dann relativ egal.
 
Deine checkboxen haben alle den gleichen Namen. Du musst jeder allerdings einen eigenen Namen geben - der Wert (value) ist dann relativ egal.
...oder als array übergeben...
Code:
<input type="checkbox" name="checkb[]" value="Style1">Style1<br>
<input type="checkbox" name="checkb[]" value="Style2">Style2<br>
<input type="checkbox" name="checkb[]" value="Style3">Style3<br>
<input type="checkbox" name="checkb[]" value="Style4">Style4<br>
<input type="checkbox" name="checkb[]" value="Style5">Style5<br>
<input type="checkbox" name="checkb[]" value="Style6">Style6<br>
Die Daten stehen dann in der array $_POST['checkb']

Marlin
 
...oder als array übergeben...
Code:
<input type="checkbox" name="checkb[]" value="Style1">Style1<br>
<input type="checkbox" name="checkb[]" value="Style2">Style2<br>
<input type="checkbox" name="checkb[]" value="Style3">Style3<br>
<input type="checkbox" name="checkb[]" value="Style4">Style4<br>
<input type="checkbox" name="checkb[]" value="Style5">Style5<br>
<input type="checkbox" name="checkb[]" value="Style6">Style6<br>
Die Daten stehen dann in der array $_POST['checkb']

Marlin

Habs so versucht, aber irgendwie passt es nicht... Bekomme als echo "Danke für die Abstimmung Blubb! Du hast dich für Array entschieden"...
Und in der txt wird "1" gespeichert...
 
Ne ist nicht lang!^^

Code:
        <form action="/form_style.php" method="POST">
            <p>Ihr habt 6 Stimmen... Nachdem jeder abgestimmt hat, zähle ich das Ergebnis aus!<br>
            Erforderlich sind Username und mindestens eine abgegebene Stimme!</p>
            <p>User:<input type="text" name="Username"></p>
            <input type="checkbox" name="checkb[]" value="Style1">Style1<br>
            <input type="checkbox" name="checkb[]" value="Style2">Style2<br>
            <input type="checkbox" name="checkb[]" value="Style3">Style3<br>
            <input type="checkbox" name="checkb[]" value="Style4">Style4<br>
            <input type="checkbox" name="checkb[]" value="Style5">Style5<br>
            <input type="checkbox" name="checkb[]" value="Style6">Style6<br>
            <input type="submit" value="Absenden" id="button">
        </form>
PHP:
<?php
$user = $_POST["Username"];
$eintrag = $_POST["checkb"]; 
$datei = fopen ("style_vote.txt","a+");
fwrite($datei, $user and $eintrag);
fclose($datei);

if ($eintrag == true) 
    {
    echo "Danke für die Abstimmung $user! Du hast dich für $eintrag entschieden";
    }
else
    {
    echo "Hier ist wohl was schief gelaufen... Sagt mir Bescheid, wenn ihr das hier lest!";
    }
?>

Keine Ahnung was ich falsch mache...
 
Code:
        <form action="/form_style.php" method="POST">
            <p>Ihr habt 6 Stimmen... Nachdem jeder abgestimmt hat, zähle ich das Ergebnis aus!<br>
            Erforderlich sind Username und mindestens eine abgegebene Stimme!</p>
            <p>User:<input type="text" name="Username"></p>
            <input type="radio" name="checkb" value="Style1">Style1<br>
            <input type="radio" name="checkb" value="Style2">Style2<br>
            <input type="radio" name="checkb" value="Style3">Style3<br>
            <input type="radio" name="checkb" value="Style4">Style4<br>
            <input type="radio" name="checkb" value="Style5">Style5<br>
            <input type="radio" name="checkb" value="Style6">Style6<br>
            <input type="submit" value="Absenden" id="button">
        </form>
PHP:
<?php
if (isset($_POST["Username"])) {
  $user = $_POST["Username"];
}
$eintrag = "";
/*$eintrag = $_POST["checkb"]; */
if (isset($_POST["checkb"])) {
  $eintrag = $_POST["checkb"];
}


if ($eintrag != "") 
    {
    echo "Danke für die Abstimmung $user! Du hast dich für $eintrag entschieden";
    $datei = fopen ("style_vote.txt","a+");
fwrite($datei, $user.$eintrag);
fclose($datei);
    }
else
    {
    echo "Hier ist wohl was schief gelaufen... Sagt mir Bescheid, wenn ihr das hier lest!";
    }
?>
Versuch's mal damit. Ich habe aus den Checkboxen Radiobuttons gemacht, was für eine solche Wahl klüger ist (wenn du es doch anders willst, sag es mir).
 
Ne ich habe bewusst Checkboxen gewählt, möchte mehrere "Ankreuzmöglichkeiten" haben!

Aber dein Vorschlag ist nachzuvollziehen.. Werd mal rumprobieren...
 
Code:
        <form action="/form_style.php" method="POST">
            <p>Ihr habt 6 Stimmen... Nachdem jeder abgestimmt hat, zähle ich das Ergebnis aus!<br>
            Erforderlich sind Username und mindestens eine abgegebene Stimme!</p>
            <p>User:<input type="text" name="Username"></p>
            <input type="checkbox" name="checkb1" value="Style1">Style1<br>
            <input type="checkbox" name="checkb2" value="Style2">Style2<br>
            <input type="checkbox" name="checkb3" value="Style3">Style3<br>
            <input type="checkbox" name="checkb4" value="Style4">Style4<br>
            <input type="checkbox" name="checkb5" value="Style5">Style5<br>
            <input type="checkbox" name="checkb6" value="Style6">Style6<br>
            <input type="submit" value="Absenden" id="button">
        </form>
PHP:
<?php
if (isset($_POST["Username"])) {
  $user = $_POST["Username"];
}
$eintrag = "";
/*$eintrag = $_POST["checkb"]; */
for ($i=1;$i<=6;$i++) {
  if (isset($_POST["checkb".$i])) {
    $eintrag.= $_POST["checkb".$i];
  }
}


if ($eintrag != "") 
    {
    echo "Danke für die Abstimmung $user! Du hast dich für $eintrag entschieden";
    $datei = fopen ("style_vote.txt","a+");
fwrite($datei, $user.$eintrag);
fclose($datei);
    }
else
    {
    echo "Hier ist wohl was schief gelaufen... Sagt mir Bescheid, wenn ihr das hier lest!";
    }
?>
 
Ich hatte ja vorgeschlagen, dass man es mit arrays macht. Nur damit du das mal gesehen hast:
Code:
<form action="/form_style.php" method="POST">
  <p>Ihr habt 6 Stimmen... Nachdem jeder abgestimmt hat, zähle ich das Ergebnis aus!<br>
     Erforderlich sind Username und mindestens eine abgegebene Stimme!</p>
  <p>User:<input type="text" name="Username"></p>
  <input type="checkbox" name="checkb[]" value="Style1">Style1<br>
  <input type="checkbox" name="checkb[]" value="Style2">Style2<br>
  <input type="checkbox" name="checkb[]" value="Style3">Style3<br>
  <input type="checkbox" name="checkb[]" value="Style4">Style4<br>
  <input type="checkbox" name="checkb[]" value="Style5">Style5<br>
  <input type="checkbox" name="checkb[]" value="Style6">Style6<br>
  <input type="checkbox" name="checkb[]" value="StyleXY">StyleXY<br>
  <input type="submit" value="Absenden" id="button">
</form>
PHP:
<?php
if (!empty($_POST["Username"])) {
  $user = $_POST["Username"];
}
if(!empty($_POST["checkb"])){
	foreach($_POST["checkb"] as $value){
		if(empty($eintrag))
			$eintrag .= $value;
		else
			$eintrag .= ", ".$value;
	}
}
if ($eintrag != "") 
    {
    echo "Danke für die Abstimmung $user! Du hast dich für $eintrag entschieden";
    $datei = fopen ("style_vote.txt","a+");
	fwrite($datei, $user." - ".$eintrag."\n");
	fclose($datei);
    }
else
    {
    echo "Hier ist wohl was schief gelaufen... Sagt mir Bescheid, wenn ihr das hier lest!";
    }
?>
Der große Vorteil ist, dass man mehrere Antwortenen einfügen kann, ohne den PHP Code zu verändern. Script wurde nicht getestet!

Marlin
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben