Problem mit Array-Ausgabe

Hallo PHP-Experten!

In meinem Kontaktformular habe ich 4 Checkboxen:

1. Potentialanalyse zur Risikominimierung 

2. Analyse der Vertriebsstruktur
 
3. Maßnahmenkatalog für den erfolgreichen Markteinstieg

4. Umsetzungsphase

Diese übergebe ich dann mit

$stufe = $_POST[‚stufe[]‘];

an meine Auswertungsroutine. Soweit so gut, aber wenn ich die aktivierten Werte (es kann 1 Wert, aber auch alle 4 aktiv sein) mit foreach auslesen will kommen Fehlermeldungen:

foreach ($stufe as $wert) {
echo $wert."
";
}

ergibt folgende Meldung: Warning: Invalid argument supplied for foreach() in /kunden/christiankueng.com/hosting/14149/gmeiner-marketing.com/meineseite/texte/deutsch/danke.php on line 71

Schreibe ich aber $stufe[] = $_POST[‚stufe[]‘];

foreach ($stufe[] as $wert) {
echo $wert."
";
}

kommt Fatal error: Cannot use [] for reading in /kunden/christiankueng.com/hosting/14149/gmeiner-marketing.com/meineseite/texte/deutsch/danke.php on line 71

Warum ist das so? In meinem PHP-Buch steht die erste Variante drin, allerdings bringt ja die auch Fehler…

Gruß Alex

Hi,

Diese übergebe ich dann mit

$stufe = $_POST[‚stufe[]‘];

warum übergeben? Und übrigens heißt die Variable „stufe“.

also einfach:
foreach ($_POST[‚stufe‘] as $wert)

Gruß
Ingo

Hallo Ingo!

Und übrigens heißt die Variable „stufe“.

Ich dachte, Array-Variablen brauchen immer die [] dahinter? Naja, vielleicht war das auch in PHP4 noch der Fall und jetzt nicht mehr…

also einfach:
foreach ($_POST[‚stufe‘] as $wert)

Danke, so hat es wunderbar geklappt.

Gruß Alex

Hi,

Ich dachte, Array-Variablen brauchen immer die [] dahinter?
Naja, vielleicht war das auch in PHP4 noch der Fall und jetzt
nicht mehr…

das war und ist immer noch so - allerdings nur im HTML, damit der Browser ein Array übergibt.

Gruß
Ingo

Hallo Ingo!

Danke für die Info - wieder was dazugelernt.

Gruß Alex

Hi,

vielleicht noch zur Ergänzung:
die „[]“ dienen in HTML, aber auch in PHP der Festlegung, dass es sich bei der Variablen um ein Array handelt, gehören aber nicht zum Namen der Variablen.
Und in PHP ist es wohl gebräuchlicher und mMn auch verständlicher, diese Festlegung bei der Definition über array() vorzunehmen.

Gruß
Ingo