Wie kann ich die array-format, input-Feld Namen in meinem HTML-Formular, die Beiträge zu PHP?

Verstehe ich die Grundlagen der Verwendung der array-formatierten HTML-input-Namen. Wenn ich ein Formular mit einer Variablen Anzahl von 'Element' - Eingänge, die ich tun könnte etwas wie diese für jeden von Ihnen:

<input name='item[]' type='text' />

Und wenn ich das abrufen der Elemente aus dem $_POST-array konnte ich Durchlaufen Sie diese wie folgt:

$items = $_POST['item'];
foreach($items as $item) {
}

Aber meine Frage ist etwas komplizierter. Ich habe ein Formular, wo die Benutzer können auf eine Schaltfläche klicken, "hinzufügen" und eine neue Zeile erscheint in der unteren Zahl von der form. Jede neue Zeile enthält eine 'name' und 'Beschreibung' input.

Also anfangs dachte ich, ich würde dies tun:

<input name='item[name][]' type='text' />
<input name='item[description][]' type='text' />

Ist und dann Durchlaufen Sie diese wie folgt:

$items = $_POST['item'];
foreach($items as $item) {
  print $item['name'] . ' ' . $item['description'];
}

Aber anstatt zu arbeiten, wie ich gehofft, es statt Strukturen die "Position" - array so, dass ich Zugriff auf das erste Element name als $item['name'][0] eher als $item[0]['name'].

Also dann blätterte ich es so, dass meine Eingaben wurden so benannt:

<input name='item[][name]' type='text' />
<input name='item[][description]' type='text' />

Aber dies resultierte in einem separaten 'Element' für jedes 'name' und für jedes 'Beschreibung' eher als Gruppierung jedes paar in einem einzelnen "Artikel".

Ich wirklich nicht mit arrays von 'name' und separaten array von 'Beschreibung'. Ich würde lieber arrays "Artikel" mit jedem array, 'name' und 'Beschreibung' - Feld. Gibt es eine Möglichkeit, dies zu erreichen, ohne dass der eine index in meinem javascript? Da die Menschen hinzufügen können, und entfernen Sie diese dynamisch es ist sehr schwierig für mein javascript zum berechnen der entsprechende index für das nächste Element. Gibt es keine Möglichkeit, dies zu tun generisch?

  • Was ist so schlimm daran, dass ein array von name und ein array von description? -- Sie kann Stück Sie wieder zusammen später.
  • E: ich habe Zwangsstörungen und das ist wirklich, wirklich nervt mich zu dem Punkt, wo ich nicht nur hack meinen Weg um ihn herum und gehen. Alle meine anderen arrays (aus der Datenbank zum Beispiel) Zeilen-index der ersten dimension und Eigenschaft name als der zweite.
  • Nun, die einzige Weise, Sie zu überwinden Ihr naming-problem ist zu zahlen in den leeren Klammern, das scheint die Schlimmste der verfügbaren Optionen, finden Sie nicht?
InformationsquelleAutor fumplr | 2011-01-17
Schreibe einen Kommentar