Ich habe ein Formular dynamisch mit der Methode .append () von jQuery generiert. Ich kann eine beliebige Anzahl von neuen Eingaben, Textbox, Cmbox, etc ... hinzufügen.
Aber das Problem ist, dass, wenn ich das summit des Formulars mache, das PHP-Ziel nicht die neue Eingabe erhält, sondern nur die vars, die mit der Eingabe bereits im Formular vor append () verbunden sind.
Irgendwelche Ideen?
Das Javascript:
Der Html:
Das PHP:
Ihr #button
sollte nicht vom Typ submit
sein, da Sie es nur zum Hinzufügen zum Formular verwenden und das Formular nicht senden möchten. Du solltest also:
Sie überschreiben Ihre Variablen. Die name
ist die Variable, die mit dem Formular gesendet wird, daher muss jeder input
Zusatz einen neuen Namen haben, oder die Variable muss ein Array sein.
Zusätzlich können Sie nicht mehr als ein Element mit demselben id
haben.
Der einfachste Weg, dies zu lösen, besteht darin, prova
zu einem Array zu machen, indem Sie das Formular prova[]
:
Sie fangen das Ereignis click
ab und fügen dem Formular Elemente hinzu, aber das Ereignis hat bereits begonnen und wird seine Standardaktion (das Formular abschicken) abschließen, ohne den Inhalt des Formulars erneut zu überprüfen.
Sie sollten das Ereignis nach dem Hinzufügen der Felder stoppen (preventDefault sollte die richtige Wahl sein) und das Formular erneut absenden.
Etwas in dieser Richtung:
%Vor%Ich habe es nicht getestet, aber ich bin ziemlich zuversichtlich, dass es funktionieren sollte:)
Nur um zu verdeutlichen und andere Probleme beiseite zu schieben, ist @ Claudius 'Anmerkung die richtige Antwort hier. Ich hatte gerade das gleiche Problem, Button-Typ war "Button" und der Name des neuen Elements wurde dynamisch inkrementiert. Alles sah gut aus, aber die hinzugefügten Elemente würden nicht senden .
Dann bemerkte ich, dass meine Formular-Tags in den Tabellen-Tags waren. Ich habe sie nach draußen gebracht und alles hat wie geplant funktioniert.
Tags und Links javascript jquery form-submit