+ Antworten
Ergebnis 1 bis 6 von 6

Thema: je nach anzahl personen mehrmals das formular auflisten.

  1. #1
    TP-Insider bona macht sich hier sehr viel Mühe Avatar von bona
    Registriert seit
    Oct 2005
    Ort
    schweiz (Lupfig)
    Beiträge
    865

    je nach anzahl personen mehrmals das formular auflisten.

    Hallo,
    ich habe ein anmeldeformular.
    Als erstes soll der User auswählen, wieviele Personen er anmelden will (auswahl 1-6).
    nun möchte ich nicht mit if abfragen ob er z.b. 5 Personen ausgewählt hat und dann 5 mal von Hand auflisten.
    wie ich es nicht will:
    PHP-Code:
    if($_POST['pers'] == 1){
      
    formular für pers.1
    }elseif($_POST['pers'] == 2){
      
    formular für pers.1
      formular für pers.2
    }elseif($_POST['pers'] == 3){
      
    formular für pers.1
      formular für pers.2
      formular für pers.3
    }elseif($_POST['pers'] == 4){
      
    formular für pers.1
      formular für pers.2
      formular für pers.3
      formular für pers.4
    }elseif($_POST['pers'] == 5){
      
    formular für pers.1
      formular für pers.2
      formular für pers.3
      formular für pers.4
      formular für pers.5
    }elseif($_POST['pers'] == 6){
      
    formular für pers.1
      formular für pers.2
      formular für pers.3
      formular für pers.4
      formular für pers.5
      formular für pers.6

    weil, dann müsste ich alles nochmal so häufig schreiben, um die daten in der DB zu speichern, dies ist mir zu aufwändig (möchte ich vermeiden).

    hätte jemand eie idee, wie ich es vereinfachen könnte?
    mir schwebt irgendwas mit arrays im kopf rum.

    Sowas in der art, dass es ausliest wieviele personen ausgewählt sind und dann mit einer whileschleife solange formulare aufliesten und bei den $_post variabeln eine nummer höher bis die zahl der personen abgearbeitet ist.

    aber wie ich es dann jeweils in die daten dann in die db bekomme, verstehe ich nicht.

    hätte jemand eine idee?
    danke für inputs
    gruss bona
    www.elbona.ch
    Never wrestle with a pig, because you both get dirty, but the pig likes it!

  2. #2
    TP-Supporter chorn bringt sich richtig ein Avatar von chorn
    Registriert seit
    Apr 2008
    Ort
    Verden
    Beiträge
    396
    Hi,

    hast du noch nie mit Schleifen gearbeitet? Lies dir doch die Dokumentation zu deinem eigenen Vorschlag durch

    http://php.net/while

    Gleich das erste Beispiel.

    MfG, Christian.

  3. #3
    TP-Insider bona macht sich hier sehr viel Mühe Avatar von bona
    Registriert seit
    Oct 2005
    Ort
    schweiz (Lupfig)
    Beiträge
    865
    danke für den link

    glaub das mit dem auflisten könnt ich hinbekommen
    nun stellt sich mir nurnoch die frage, wie die daten eintragen.
    wenn ich z.b.
    PHP-Code:
    $_POST['1name']
    $_POST['2name']
    $_POST['3name']
    $_POST['4name'
    habe, wie kann ich das dann jeweils in die spalte name in der db speichern?
    müsst ich es erst in ein array namens 'name' einlesen und dann solange etwas im array ist einlesen?
    oder kann man keinen INSERT befehl in einer schleife ausführen?

    (bin noch nicht geübt in solchen sachen auszuklügeln.
    desswegen die fragerei )

    danke
    gruss bona
    www.elbona.ch
    Never wrestle with a pig, because you both get dirty, but the pig likes it!

  4. #4
    TP-Insider bona macht sich hier sehr viel Mühe Avatar von bona
    Registriert seit
    Oct 2005
    Ort
    schweiz (Lupfig)
    Beiträge
    865
    hallo,
    mein array, sieht momentan so aus:
    Code:
    Array ( 
    [1vname] => hans 
    [1nname] => peter 
    [1geb] => 25.02.1982 
    [2vname] => fritz 
    [2nname] => muster 
    [2geb] => 05.03.1892  
    [abschicken] => abschicken )
    gibt es eine funktion, wie man alle 1... und alle 2... in ein eigenes array zu schreiben?
    gruss bona
    www.elbona.ch
    Never wrestle with a pig, because you both get dirty, but the pig likes it!

  5. #5
    TP-Veteran Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.686
    Moin,
    entweder JS oder du laesst die Arrayfeldbenennung offen.

    1. Form
    <input name="name[]" ...

    2.Form
    <input name="name[]" ...
    ...

    in PHP ($_GET, $_POST, ...):
    $name['0']
    $name['1'] ...
    Gruss Guin
    Mein Blog

  6. #6
    TP-Supporter chorn bringt sich richtig ein Avatar von chorn
    Registriert seit
    Apr 2008
    Ort
    Verden
    Beiträge
    396
    Hi,

    der Vorschlag von Guin ist eine Möglichkeit, da hätte ich allerdings Bedenken bezügliche leerer Felder, wobei befüllte Felder von unteren Formularen leere Felder von weiter oben überschreiben könnten und damit nichtmehr eindeutig zuzuordnen wären - bzw. anschaulicher: Der Strassenname von Person 2 könnte im leeren Strassennamen von Person 1 landen.

    Passender fände ich hier die Indexierung nach Personen, das kanns du auch wunderbar in deiner Schleife einbauen:

    Person[1][vorname]
    Person[1][name]

    Person[2][vorname]
    Person[2][name]
    Person[2][strasse]

    ...

    MfG, Christian.

+ Antworten

Ähnliche Themen

  1. Anzahl in Formular ändern
    Von Pixelmaster im Forum Traum-Dynamik
    Antworten: 4
    Letzter Beitrag: 15.04.2008, 20:22
  2. tt_news archiv nach anzahl
    Von Borusse im Forum TYPO3
    Antworten: 4
    Letzter Beitrag: 04.03.2008, 15:50
  3. SQL: ordnen nach Anzahl des Vorkommens in Tabelle
    Von megamanX im Forum Traum-Dynamik
    Antworten: 1
    Letzter Beitrag: 11.02.2007, 21:33
  4. PHP, zeilenumbruch nach bestimmter anzahl..
    Von danis` im Forum Traum-Dynamik
    Antworten: 4
    Letzter Beitrag: 09.12.2004, 22:18
  5. Antworten: 5
    Letzter Beitrag: 07.08.2001, 00:21

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51