# Eingaben aus Formular in Array speichern



## Ken89 (16. April 2008)

Hallo Coder 

ich habe ein kleines Script geschrieben mit dessen Hilfe man eine beliebige Anzahl von Teilnehmer für ein Wettkampf eintragen kann. 
Nun habe ich ein Problem beim speichern der Vornamen, Nachnamen, Jahrgänge etc.

Der User kann zuvor die Anzahl der Teilnehmer bestimmen und bekommt dann entspechend viele Formulare untereinander angezeigt. Dies wird mit einer for Schleife gemacht (soweit kein Problem).


```
for($k=1;$k<$anzahl_teilnehmer+1;$k++) // je nach teilnehmer anzahl wird das formular beliebig oft ausgegeben
{
echo"
<h5>Teilnehmer/in #$k </h5>";
echo'
<table align="center">
<tr><td>Name: </td><td>Vorname:</td></tr>';
echo"<tr><td><input type='text' name='nachname_t_$k' size='30'/></td><td><input type='text' name='vorname_t_$k' size='30' value=''/></td></tr>";
echo"<tr><td>Jahrgang:</td><td>Gr&ouml;&szlig;e im cm:</td></tr>
<tr><td><input type='text' name='jahrgang_t_$k' size='10'/></td><td><input type='text' name='groesse_t_$k' size='10'/>
<tr><td>Geschlecht:</td><td>Startkategorien:</td></tr>
<tr><td><input type='radio' name='geschlecht_t_$k' value='w'> weiblich</br><input type='radio' name='geschlecht_t_$k' value='m'/> m&auml;nnlich</td><td><input type='checkbox' name='kategorie_t_$k' value='kategorie1'/>kategorie1<br /><input type='checkbox' name='kategorie_t_$k' value='kategorie2'/>kategorie2</td></tr>
 </table> 
}
```

soweit alles klar, doch wie bekomme ich nun die werte in ein array gespeichert 

ich habe es wie folgt erfolglos versucht:


```
for($k=1;$k<$anzahl_teilnehmer;$k++)
    {
      $nachname[$k] = $_POST["nachname_t_$k"];   
      $vorname[$k] = $_POST["vorname_t_$k"];   
      
      echo $nachname[$k];
      
    }
```


kann mir jemand helfen wie ich weitermachen könnte oder eine andere möglichkeit aufzeigen mit der ich dieses Problem lösen kann 

dankeschön


----------



## kalle123456 (16. April 2008)

Ken89 hat gesagt.:


> Hallo Coder
> 
> ich habe ein kleines Script geschrieben mit dessen Hilfe man eine beliebige Anzahl von Teilnehmer für ein Wettkampf eintragen kann.
> Nun habe ich ein Problem beim speichern der Vornamen, Nachnamen, Jahrgänge etc.
> ...



vielleicht so, Beispiel


```
$nachname = array();
$vorname = array();
 for($k=0;$k<=$anzahl_teilnehmer;$k++)
    {
      array_push($nachname, $_POST["nachname_t_$k"]);   
      array_push($vorname, $_POST["vorname_t_$k"]);   
      
      echo $nachname[$k];
      
    }
```


----------



## Ken89 (16. April 2008)

hm danke für die hilfe, klappt aber leider auch nicht 

weiß sonst jemand noch ne andere lösung, oder ein ansatz


----------



## kuddeldaddeldu (17. April 2008)

Hi,

setze mal ein print_r($_POST) ein, um zu sehen, was da überhaupt drinsteht.

LG


----------



## maeg (18. April 2008)

Hi,

ich würde das ganze so angehen: Du hast ja deine Forms. Jede von den Forms hat ja eine "eindeutige" Nummer hinter dem Namen eines jeden Textfeldes.
z.b. 

nachname_t_$k

Erstmal musst du schauen, dass du das $k an die erste stelle setzt..

z.B.

$k_t_nachname

So machst es bei allen Feldern

Sendest du das Formular nun ab, musst du alle per $_POST übergebenen Daten überprüfen.

z.B. so:


```
<?php

$teilnehmer = array();

foreach($_POST as $element => $d) {
    
    echo $element;
    
    if(!array_key_exists(substr($element,0,1), $teilnehmer)) {
        $teilnehmer[substr($element,0,1)] = array();
    }
    
    $teilnehmer[substr($element,0,1)][substr($element,1,strlen($element)-1)] = $d;
    
}

print_r($teilnehmer);

?>
```
Erklärung: Du gehst jeden Eintrag im array $_POST durch und checkst, ob es im Array teilnehmer schon einen Schlüssel mit der jeweiligen Nummer gibt. Die Nummer vergibst du oben bei der for-schleife ($k = 1_teilnehmer_nachname).
Gibt es noch kein Array mit diesem Schlüssel, wird das Array angelegt.
Danach wird der Wert des aktuellen Eintrages im Array abgelegt.

Einigermaßen verstanden? Probiers mal aus..


----------

