Eingaben aus Formular in Array speichern

Ken89

Mitglied
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).

PHP:
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:

PHP:
   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 ;)
 
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).

PHP:
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:

PHP:
   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 ;)

vielleicht so, Beispiel

PHP:
$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];
      
    }
 
hm danke für die hilfe, klappt aber leider auch nicht :(

weiß sonst jemand noch ne andere lösung, oder ein ansatz
 
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:
<?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..
 
Zurück