jQuery verbucht nicht alle Eingaben eines Formulars nach dem .append ()

9

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:

%Vor%


Der Html:

%Vor%


Das PHP:

%Vor%     
Claudio 02.10.2010, 20:53
quelle

5 Antworten

3

Problem 1:

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:

%Vor%


Problem 2:

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[] :

verwenden %Vor%

jsFiddle-Beispiel

    
Peter Ajtai 02.10.2010, 23:00
quelle
1

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:)

    
MartinodF 02.10.2010 21:12
quelle
1

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.

    
Dazbert 26.04.2015 17:59
quelle
0

Haben Sie einen Code zum Anzeigen? Damit php die übermittelten vars "sehen" kann, müssen Sie sicherstellen, dass das Attribut "name" in den Formularelementen angegeben ist. Ich habe das Gefühl, Ihr Problem wird mit der jQuery nicht der PHP sein.

    
jsuggs 02.10.2010 20:57
quelle
0

Beste Schätzung: Sie haben keine Namensattribute für Ihre dynamisch hinzugefügten Elemente festgelegt.

    
Thomas 02.10.2010 20:58
quelle

Tags und Links