ralphi: Formularfeldernamen als Array übergeben

Hallo zusammen,

ich komm einfach nicht drauf.

ich erzeuge ein dynamisches formularfeld:

while (!feof($datei)) {
 $i=$i+1;
       $ki="k".$i;
printf("
<p><input type="text" name="%s" size="52" value="%s"></p>
",$ki,$feld[0]);
}

und möchte die Inhalte von den $ki 's in einer php Datei
<form method="POST" action="db_in.php">
 in die DB schreiben.

irgendwie in der Art:
db_in.php:

for ($i=1; $i<=$max; $i++) {
//print($ki[$i]);
//print($ki);
//print($ki.name);

//mysql_query(sprintf('insert into katctt (datum,kat,katnr) VALUES (now(),"%s","%s")',
  //addslashes($ki),
  //addslashes($katnr)));
}

Meine Frage:
Wie kann ich die Variable durchlaufen?

grüße aus LA ralphi

  1. Hallo ralphi,

    db_in.php:

    Schreib hier mal
    print_r($_POST);
    da hast du dein Array

    Gruß,

    Dieter

  2. Hallo ralphi,
    Zunächst mal ein paar Verständinsfragen:

    ich komm einfach nicht drauf.

    ich erzeuge ein dynamisches formularfeld:

    while (!feof($datei)) {
    $i=$i+1;
           $ki="k".$i;
    printf("
    <p><input type="text" name="%s" size="52" value="%s"></p>
    ",$ki,$feld[0]);
    }

    Warum printf ()?
    Warum verwendest Du nicht die kis als name=""

    und möchte die Inhalte von den $ki 's in einer php Datei
    <form method="POST" action="db_in.php">
    in die DB schreiben.

    irgendwie in der Art:
    db_in.php:

    for ($i=1; $i<=$max; $i++) {
    //print($ki[$i]);
    //print($ki);
    //print($ki.name);

    //mysql_query(sprintf('insert into katctt (datum,kat,katnr) VALUES (now(),"%s","%s")',
      //addslashes($ki),
      //addslashes($katnr)));

    Warum sprintf ()
    Warum nicht ein ganz normales sql Statement?
    foreach () und die Variable $_POST durchlaufen oder welche Variable meintest Du?

    1. Hi Tom,

      Warum printf ()?

      ich möchte auf der seite die daten in textfeldern darstellen, um sie noch manuell zu bearbeiten bevor ich sie speicher.

      printf ist das einzige was ich kenne um in php, html darzustellen.

      Warum verwendest Du nicht die kis als name=""

      die varnamen sind doch dann in der form gleich bei jedem textfeld?! oder bildet er dann automatisch ein array?

      Warum sprintf ()

      hab ich in einem bsp-script gefunden und funktioniert. hab mir deshalb keine gedanken über alternativen gemacht.

      Warum nicht ein ganz normales sql Statement?
      foreach () und die Variable $_POST durchlaufen oder welche Variable meintest Du?

      mit der methode ="POST" bekomme ich doch alle felder der form als variable übergeben
      k1 --> $k1
      k2 --> $k2
      Name --> $Name
      Was beinhaltet die Var $_POST ?

  3. Hi zusammen,

    ich habs gefunden - ganz einfach wenn manns weiss :)

    "name"=ki[]

    und schon hat man ein array ki[1] ... im geposteten php file

    danke
    ralphi

    1. Hallo ralphi,

      und schon hat man ein array ki[1] ... im geposteten php file

      Hat man nur unter unsicheren Bedingungen in Uralt-PHP. Ansonsten hat man $_POST['ki']. Lies am besten mal ueber register_globals, entweder im PHP Manual oder hier im Archiv

      Gruß,

      Dieter