Hallo,
trotz Suchens habe ich keine Antwort / Lösung für ein Problem gefunden:
Ich möchte ein Kontaktformular erstellen, bei dem der User mit Hilfe von Checkboxen angeben kann, welche Informationen er wünscht. Bisher habe ich (gekürzt):
HTML-FORMULAR:
<form name="formular" method="post" action="mail.php">
<input type="checkbox" name="thema[]" value="checkbox">
Thema 1
<input type="checkbox" name="thema[]" value="checkbox">
Thema 2
<input type="checkbox" name="thema[]" value="checkbox">
Thema 3 </p>
</form>
MAIL.PHP:
$themen = $_REQUEST['thema'];
if (isset($themen) && $themen <> "" ) {
foreach($themen as $infoszu) {
$message .= 'Informationen zu: ' .$infoszu. "\n";
$message .= 'Anzahl der Elemente: ' .count($themen). "\n";
}
} else {
$message .= 'Allgemeine Kontaktanfrage.';
}
Soweit, so gut. Das Ergebnis sieht nur leider so aus:
Informationen zu:
Anzahl der Elemente: 1
Meine Frage: was mache ich falsch???
Gruss
letsgo
[/code]
Ankündigung
Einklappen
Keine Ankündigung bisher.
PHP5 und Checkboxen bei Formular
Einklappen
Neue Werbung 2019
Einklappen
X
-
PHP5 und Checkboxen bei Formular
Stichworte: -
-
phpfan hat doch diesen Link gepostet:
http://www.php-faq.de/q/q-formular-checkbox.html
Was verstehst du daran nicht??
-
Ein Gast antworteteHi, Danke!
habe alles so gemacht, aber es klappt halt immer noch nciht. Die Werte von thema[] werden einfach nicht übergeben...
Gruss
letsgo
Einen Kommentar schreiben:
-
Ein Gast antworteteHm, mein Beispiel ist getestet und ist hier voll funktionstüchtig. var_dump($_REQUEST) gibt garnichts aus? Dann läuft da massiv was falsch.
Was gibtPHP-Code:<?php echo phpversion(); ?>
Im Zweifelsfall, benutzte Webserver- und php-Installation wegwerfen und xampp zum Testen verwenden.
Einen Kommentar schreiben:
-
Zitat von WarrenFaith4. ein formular ohne Button?
Problem sollte aber jetzt gelöst sein mit den Antworten.
Einen Kommentar schreiben:
-
Ein Gast antworteteZitat von letsgoIch muss zugeben, ich bin kein Programmierer, sondern Sportler, muss aber dringend was "reparieren", da unser Programmierfreak längere Zeit ausfällt.
Ein Hinweis: Ein Forum ist nicht dafür da, Grundlagen zu vermitteln, die muss man schon alleine lernen.
11.10. Wie kann man Checkboxen verarbeiten?
http://www.php-faq.de/q/q-formular-checkbox.html
Gruß
phpfan
Einen Kommentar schreiben:
-
1. error_reporting(E_ALL); benutzen
2. Values der Checkboxen UNIQUE (sprich eineindeutig) machen
3. $_REQUEST ist sowas von unsicher.... nutz doch $_POST, wenn du schon dein Formular damit nutzt
4. ein formular ohne Button?
Lösung:
Code:<form name="formular" method="post" action="test.php"> <input type="checkbox" name="thema[]" value="thema1"> Thema 1 <input type="checkbox" name="thema[]" value="thema2"> Thema 2 <input type="checkbox" name="thema[]" value="thema3"> Thema 3 </p> <input name="ok" value="ok" type="submit"> </form>
Code:<? // ausgabe was übergeben wird echo '<pre>'; print_r($_POST); echo '</pre>'; ?>
Code:Array ( [thema] => Array ( [0] => thema1 [1] => thema2 [2] => thema3 ) [ok] => ok )
Testlink (nur temporär): http://www.warrenfaith.de/test.php
Einen Kommentar schreiben:
-
Ein Gast antworteteHallo axo,
danke für den Tip!
Ich habe jetzt die Bestätigung für das, was ich mir schon gedacht habe: die Werte der CheckBoxen werden überhaupt nicht übermittelt - zumindest nicht als array.
Leider weiss ich nicht WARUM die nicht übermittelt werden. Ich muss zugeben, ich bin kein Programmierer, sondern Sportler, muss aber dringend was "reparieren", da unser Programmierfreak längere Zeit ausfällt.
Werde ich mir jetzt jemanden suchen müssen, der mir das Problem gegen Geld löst...?
Danke trotzdem
letsgo
Einen Kommentar schreiben:
-
ich geb dafür einen kleinen tipp:
mit var_dump($_REQUEST) bekommst du genau das geliefert, was php auch weiß. damit solltest du relativ gut sehen können, was du falsch machst.
und zweitens:
mit error_reporting(E_ALL) werden dir ein paar ganz interessante fehler angezeigt, die du machst.
Einen Kommentar schreiben:
-
Wenn ich krank bin schick ich doch auch nicht meinen Bruder zum Arzt um ihn untersuchen zu lassen ^^ Meine Güte.
Und du meinst, nur weil du mich unberechtigt blöd anmachst sag ich dir zumindest einen immer wieder gern gemachten Anfängerfehler bezüglich Checkboxen? Nö.
Einen Kommentar schreiben:
-
Ein Gast antwortete@Zergling: Demnächt poste ich das ganze Script, das ca. 7 DinA4 Seiten lang ist, kein Problem.
Und wenn Du den Fehler nicht verrätst, denke ich ganz einfach, dass du ihn selber nicht kennst.
Einen Kommentar schreiben:
-
Zitat von letsgo@Bruchpilot: count($themen) ist nur zu Testzwecken gedacht. Die VALUE-Werte sind natürlch unterschiedlich, ich habe nur ein Beispiel gepostet. Und: Deine Variante habe ich ausprobiert, aber dasErgebnis bleibt gleich: ich bekomme die Werte von VALUE nicht übermittelt.
Einen Kommentar schreiben:
-
Ein Gast antworteteHallo,
danke für Eure Antworten.
@Bruchpilot: count($themen) ist nur zu Testzwecken gedacht. Die VALUE-Werte sind natürlch unterschiedlich, ich habe nur ein Beispiel gepostet. Und: Deine Variante habe ich ausprobiert, aber dasErgebnis bleibt gleich: ich bekomme die Werte von VALUE nicht übermittelt.
@Pyro: das habe ich mir schon durchgelesen, BEVOR ich hier gepostet habe. Mein Problem ist und bleibt aber, dass die Werte nciht richtig übertragen werden.
Gruss
letsgo
Einen Kommentar schreiben:
-
Ein Gast antwortetehttp://faq-phpfriend.de/q/q-formular-checkbox.html
schau dir mal die beiden verschiedenen fälle zur auswertung von boxen an.
Einen Kommentar schreiben:
-
Ein Gast antworteteWert von value immer der selbe -> wie willst Du sie unterscheiden?
count($themen) innerhalb der foreach-Schleife? Wie oft willst Du das denn wissen?
Wozu die Zuweisung $themen=$_REQUEST['thema']?
PHP-Code:<html>
<body>
<?php
if (isset($_REQUEST['themen']) && is_array($_REQUEST['themen'])) {
echo 'Anzahl der Elemente: ', count($_REQUEST['themen']), "
\n";
foreach($_REQUEST['themen'] as $thema) {
echo 'Informationen zu: ', htmlentities($thema), "
\n";
}
}
?>
<form name="formular" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input id="thema1" type="checkbox" name="themen[]" value="Thema1" />
<label for="thema1">Thema 1</label>
<input id="thema2" type="checkbox" name="themen[]" value="Thema2" />
<label for="thema2">Thema 2</label>
<input id="thema3" type="checkbox" name="themen[]" value="Thema3" />
<label for="thema3">Thema 3</label>
<input type="submit" />
</p>
</form>
</body>
</html>
Einen Kommentar schreiben:
Einen Kommentar schreiben: