PHP Warning: Invalid argument supplied for foreach()

DichterNebel

Cadet 4th Year
Dabei seit
Apr. 2009
Beiträge
66
Hi,

ich stehe noch am Anfang meiner Programmier-Karriere und habe folgendes Problem:

Aus einen Html Dokument sollen die Werte an ein PHP Script übermittel und "ausgelesen" werden.

HTML:
<Form Action="Lohn.php" METHOD= "Post">  
  
  Name: <br />
  <SELECT NAME ="name[]">  <!-- name[] = Array -->
  <Option> </OPTION>  <!-- damit Auswahl erstmal leer angezeigt wird -->
  <Option> Person1</Option>
  <Option> Person2 </Option>
  </Select>
  <br />
  
  Anzahl der Stunden <br />
  <Input Type = "Text" Name = "stunden"> <br />
  
  Lohn pro Stunde <br />
  <Input Type = "Text" Name = "lohn"> <br />
  
  Arbeitgeber: <br />
  <SELECT Name ="arbeitgeber[]">
  <Option> </OPTION> <!-- damit Auswahl erstmal leer angezeigt wird -->
  <Option> Arbeit1 </Option>
  <Option> Arbeit2  </Option>
  </Select>
  <br />
  <br /> 
  
  <Input Type = "Submit" Name = "GO" VALUE = "berechnen">
PHP:
<?php

$name        = $_Post['name'];
$stunden     = $_Post['stunden'];
$lohn        = $_Post['lohn'];
$arbeitgeber = $_Post['arbeitgeber'];

foreach ($name as $person) {
echo "Hallo $person";
} 

echo "du hast $stunden Stunden bei";

foreach ($arbeigeber as $wo_den) {
echo "bei $wo_den gearbeitet";
}

?>
Der PHP-Code ist noch nicht ganz fertig und die Formatierung ist auch unvollständig aber
es müsste doch trotzdem funktionieren.
Ich bekomme allerdings immer folgende Fehlermeldung :
Warning: Invalid argument supplied for foreach() in C:\xampp\xampp\htdocs\Lohn.php on line 8
Kann mir jemand sagen wo´s hängt ?
 

Maysi2k

Captain
Dabei seit
Sep. 2006
Beiträge
3.418
Schreib mal </SELECT> in line 8 statt </Select>

echo "Hallo $person"; - müsste glaube ich auch echo "Hallo "$person; heißen, bin mir aber nichts icher, hab schon wochen nichtsmehr gemacht :D
 

Domi83

Commodore
Dabei seit
Feb. 2010
Beiträge
4.308
Zuletzt bearbeitet: (Ich hab mal einen echo draus gemacht..)

the_xtc

Cadet 1st Year
Dabei seit
Sep. 2010
Beiträge
12
1.
HTML:
<Form Action="Lohn.php" METHOD= "Post">
zu
HTML:
<Form Action="Lohn.php" METHOD="Post">
2.
PHP:
$_Post
zu
PHP:
$_POST
per definition
 

Rain

Lieutenant
Dabei seit
Mai 2003
Beiträge
704
da fehlt ein t bei arbeitgeber in der foreach.

du brauchst die select nicht als array zu übermitteln, da du eh nur einen wert übermitteln kannst
 

DichterNebel

Cadet 4th Year
Ersteller dieses Themas
Dabei seit
Apr. 2009
Beiträge
66
danke für das t. ;)
Also brauch ich Arrays nur, wenn ich in einer variable mehrere Werte übermitteln will ?
 

Rain

Lieutenant
Dabei seit
Mai 2003
Beiträge
704
genau! zB wenn du mehrere checkboxen zur auswahl hast, dann kannst du alle markierten objekte in einer array-variable übermitteln. aber bei selects, radiobuttons und normale text-inputs (welche nur einen wert übermitteln) brauchst du keine klammern an den namen des objekts anzuhängen
 
Top