Dynamisches Formular pro Durchgang ein Array

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dynamisches Formular pro Durchgang ein Array

    Hallo,

    mir fehlt gerade der komplette Denkansatz für folgendes Problem:

    Ich möchte ein Formular mit den selben Feldern automatisch generieren lassen. Die Menge der Felder hängt dabai von der Menge der Produkte ab; also quasi so:

    PHP-Code:
    print "<form name=\"produktform\" action=\"form.php\" method=\"post\">";
    while (
    $product mysql_fetch_array($products['id'])) {
      print 
    $product['name'];
      print 
    "<input type\"text\" name=\"category\" value=\"\">\n
      print "
    <input type\"text\" name=\"preis\" value=\"\">\n
      print "
    <br />";
    }
    print "
    <input type=\"submit\" value=\"senden\">";
    print 
    "</form>"
    Das Problem ist ja jetzt, dass das Post-Array jetzt nur aus dem letzten Formular Array besteht - quasi aus dem letzten Durchgang.

    Wie kann ich das hinbekommen, dass ich ein Array bekomme welches wie folgt aussehen könnte:

    PHP-Code:
    Array
    (
        [
    0]
        (
            [
    category] = Schiffe
            
    [preis] = teuer
        
    )
        [
    1]
        (
            [
    category] = schiffen
            
    [preis] = sehr teuer
        
    )
        [
    2]
        (
            [
    category] = schiffte
            
    [preis] = ziemlich teuer
        
    )
        [
    3]
        (
            [
    category] = Schilf
            
    [preis] = am teuersten
        
    )

    Also das quasi das gesendete Post-Array in einem Durchlaufarray übergeben wird.

    Ich stehe total auf dem Schlauch.

    Wenn jemand eine Idee hat bin ich ganz Ohr bzw. Auge.

    Danke im Voraus und Grüße aus Leipzig
    Michael

  • #2
    PHP ist zu doof, aus mehrere gleichnamigen Parametern mit "normalen" Namen ein Array zu machen - es braucht explizit eckige Klammern im Namen.

    Mehrfache Verwendung von name="xyz[]" liefert dir im $_POST-Array ein Element mit dem Index 'xyz', das seinerseits wieder ein Array darstellt.

    Du könntest also Namen wie "category[]" und "preis[]" verwenden - allerdings bekämst du damit zwei Arrays, die voneinander unabhängig sind.
    Probleme mit der nummerischen Indizierung (falls mal ein Wert fehlen sollte o.ä.) könnte man zwar vermeiden, in dem man innerhalb der Klammern den gewünschten Indexwert direkt mitgibt.

    Aber du kannst die Elemente natürlich auch gleich so benennen, dass du ein Array in der genannten Struktur bekommst. Wie, da kommst du mit obigen Infos und ein bisschen Überlegen sicher selber drauf.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar

    Lädt...
    X