Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Checkboxen mit PHP prüfen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Neno
PostRank 4
PostRank 4
Beiträge: 143
Registriert: 18.12.2006, 22:38

Beitrag von Neno » 23.06.2007, 18:03

Hallo,
es geht um ein Bestellformular mit 20 Checkboxen. Es soll geprüft werden, ob mindestens eine Checkbox angeklickt ist, bevor das Formular abgeschickt wird. Das Formular bekomme ich per Email. Jede Checkbox steht für einen Excelrechner, der bestellt werden kann. Nachfolgend die Codeabschnitte, leider funktioniert es nicht. Kann jemand den Fehler entdecken?

Gruß
Neno

<?php
$vorname = $_POST['vorname'];
$name = $_POST['name'];
$email = $_POST['email'];
$auftrag = $_POST['rechner'];

...
if(isset($_POST['rechner'])) foreach($_POST['rechner'] as $value) if(!empty($value)) $check = true;
if(isset($check)) echo "ja";
...
<input type="checkbox" name="rechner[]" value="Gehaltumwandlung">Gehaltumwandlung<br>
<input type="checkbox" name="rechner[]" value="Kapitalaufbau">Kapitalaufbau<br>
<input type="checkbox" name="rechner[]" value="Versorgungslücke">Versorgungslücke<br>
<input type="checkbox" name="rechner[]" value="Zinskontrolle">Zinskontrolle<br>
...
$text = "Bestellung Excelrechner\n";
$text.= "- - - - - - - - - - - - - - - - - - - - - - - - - - - - \n";
$text.= "Vorname. . . . . . . . . . .$vorname\n";
$text.= "Name.. . . . . . . . . . . .$name\n";
$text.= "Email. . . . . . . . . . . .$email\n\n";
$text.= "- Excelrechner: . . . . . . $auftrag\n";

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


semtex
PostRank 6
PostRank 6
Beiträge: 381
Registriert: 25.04.2007, 22:50

Beitrag von semtex » 23.06.2007, 19:20

Formularauswertung mit PHP ist eine Sache für sich, denn direkte klicks kann man mit PHP nicht so einfach auswerten.
Man kann höchstens in einer Schleife über den Inhalt des Arrays gehen, so wie Du es versucht hast.
Ich würde die Sache mit Javascript machen, oder sehr einfach so :


for ($i = 0; $i<=20; $i++) {
if (isset($_POST['rechner'][$i])) {

revilo
PostRank 1
PostRank 1
Beiträge: 25
Registriert: 24.05.2007, 16:10
Wohnort: Wien

Beitrag von revilo » 24.06.2007, 02:36

Hallo!

Wenn Du auf jeden Fall alle "Rechner" in der Mail stehen haben, und einfach die gewählten mit "ja" kennzeichnen möchtest, funzt es freilich nicht.

Code: Alles auswählen

$_Post&#91;"rechner"&#93;
wird nur dann übergeben, wenn mind. ein Array Element besetzt ist.

Code: Alles auswählen

if&#40;isset&#40;$_POST&#91;'rechner'&#93;&#41;&#41; &#123;foreach&#40;$_POST&#91;'rechner'&#93; as $value&#41; $auftrag.=$value. "\n"; &#125; else &#123;$auftrag="";&#125;
...
if &#40;$auftrag==""&#41; &#123;$error="Nix ausgewählt";&#125;
...
Irgendwo&#58; print&#40;$error&#41;;
...
$text.= "- Excelrechner&#58;\n";
$text.= $auftrag. "\n";
...
Die letzte Zeile,... naja, ich weiß nicht, wie Du Fehlermeldungen / Hinweise ausgeben möchtest.

Möglichkeit 2: Im Gegensatz zu den radios, können Checkboxen ja voneinander unabh. betrachtet werden--> differente names (und ids), der Code würde sich über sämtliche Einzelchecks natürlich wesentlich verlängern.

LG O

Neno
PostRank 4
PostRank 4
Beiträge: 143
Registriert: 18.12.2006, 22:38

Beitrag von Neno » 25.06.2007, 12:42

Hallo,
das klappt jetzt schon mal mit der Prüfung der Checkboxen. So sieht es aus:

if(isset($_POST['rechner'])) {foreach($_POST['rechner'] as $value) $auftrag.=$value. "\n"; } else {$auftrag="";}
if ($auftrag=="") {$err_text.="Nix ausgewählt";}

if(($send=="1") && (isset($err_text))) {
echo "<p><big><b>Fehlermeldung:</b></big><br>";
echo "$err_text</p>";
}
if(($send!="1") || (isset($err_text)))
{

Was mir jetzt noch fehlt ist die Ausgabe des Value-Wertes der Checkbox. Bisher habe ich das so gemacht:
$text = "Bestellung Excelrechner\n";
$text.= "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n";
$text.= "Vorname. . . . . . . . . . .$vorname\n";
$text.= "Name.. . . . . . . . . . . . .$name\n";
$text.= "Email. . . . . . . . . . . . . .$email\n\n";
$text.= "- Excelrechner: $auftrag1\n";
$text.= "- Excelrechner: $auftrag2\n";
$text.= "- Excelrechner: $auftrag3\n";
$text.= "- Excelrechner: $auftrag4\n";
$text.= "- Excelrechner: $auftrag5\n";
...
Also insgesamt 20 mal. Jede Checkbox hat eine eigene Variable gehabt, die einzeln ausgeben wurde. Da ich das jetzt mit einem Array mache, frage ich mich, wie die angeklickten Checkboxen in die Email über die das Kontaktformular ankommt, geschrieben werden. Kann jemand hier weiterhelfen?

gruß
Neno

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag