Ich verstehe die Grundlagen der Verwendung der Array-formatierten HTML-Eingabenamen. Wenn ich ein Formular mit einer variablen Anzahl von "Element" -Eingängen hätte, könnte ich für jeden von ihnen so etwas tun:
%Vor%Und wenn ich die Elemente aus dem $ _POST-Array abrufe, kann ich sie wie folgt durchlaufen:
%Vor%Aber meine Frage ist etwas komplizierter. Ich habe ein Formular, in dem Benutzer auf den Button "Add One" klicken können und eine neue Zeile wird an der unteren Nummer des Formulars angezeigt. Jede neue Zeile enthält eine Eingabe 'Name' und 'Beschreibung'.
Also zuerst dachte ich, ich würde das tun:
%Vor%Und dann iteriere über sie wie folgt:
%Vor% Aber anstatt zu arbeiten, wie ich gehofft habe, strukturiert es stattdessen das "Gegenstand" Feld, so dass ich auf den ersten Gegenstandnamen als $item['name'][0]
eher als $item[0]['name']
.
Also habe ich es umgedreht, damit meine Eingaben so benannt wurden:
%Vor%Aber dies führte zu einem separaten "Element" für jeden "Namen" und für jede "Beschreibung", anstatt jedes Paar in einem einzigen "Element" zu gruppieren.
Ich mag es wirklich nicht, Arrays von 'Name' und separatem 'Description' zu haben. Ich würde Arrays von 'item' bevorzugen, wobei jedes Array ein 'name' und ein 'description' Feld enthält. Gibt es eine Möglichkeit, dies zu erreichen, ohne einen Index in meinem Javascript zu generieren? Da Leute diese dynamisch hinzufügen und entfernen können, ist es für mein Javascript sehr schwierig, den passenden Index für das nächste Element zu berechnen. Gibt es keine Möglichkeit, dies generisch zu tun?
Es ist nicht möglich, zu tun, was Sie wollen, aber wenn es hilft, hier ist ein Code, um es wieder zusammenzufügen, der meiner Meinung nach funktioniert (mit item_name[]
und item_description[]
):
Tags und Links html php forms multidimensional-array