Wie posten Sie ein Formular mit vielen Feldern mit jQuery?
Obwohl $.ajax() kann verwendet werden, um ajax-Dinge, ich glaube nicht, dass es fit für die Buchung der Werte einer großen form.
Wie würden Sie post
eine große form (viele Felder) ohne die Eingabe aller von Ihnen mit der hand?
Kommentar zu dem Problem
Ich denke, die OP wird unter Bezugnahme auf die Buchung ein Formular mit vielen Feldern. Es gibt eine Menge von boilerplate-code zu schreiben, wenn Sie die Buchung der Felder ein-by-one, und ich denke, die OP fragt, ob es eine Möglichkeit gibt poste einfach alle Felder auf dem Formular. Diese Frage war für mich sehr nützlich.
InformationsquelleAutor der Frage omg | 2009-09-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ist Ihre überlegung hinter dieser Annahme? POST ist ausgelegt für die übertragung von größeren Datenmengen als GET. Ein AJAX-POST-request ist fast genau das gleiche wie mit einer "normalen" POST-request, es ist nur gebündelt und intern behandelt, die von einem browser in einer etwas anderen Weise. Ein paar Header könnte etwas anders sein, aber die Daten sind alle gleich. Warum sollte AJAX scheitern, Griff ein "großes" form?
Was würden Sie selbst definieren, wie eine "große" form sowieso?
Edit: Danke für die Aufklärung auf Ihre Frage. Ich verstehe, was du fragst jetzt, und ich sehe, wo du herkommst. Für ein Formular mit einer Menge von Eingaben, könnte es sein, ein Schmerz zu bündeln es in einem Ajax-request die ganze Zeit.
Da bist du mit jQuery, da gibt es eine einfache Lösung für dieses. Überprüfen Sie heraus die serialize() Methode. Sie geben ihm eine form, und es gibt Sie wieder ein query-string, der alle Formular-Eingabe-Elemente und die Werte, die Sie übergeben können, die direkt zu einem ajax-request. Es gibt ein Beispiel gibt es auf der Handbuch-Seite, die zeigt, wie es geht.
Alles, was Sie zu tun haben ist dies:
wo
"form"
ist die id des Formulars.InformationsquelleAutor der Antwort zombat
, Die Sie wahrscheinlich verwenden wollen serialisieren, wenn Sie nicht wollen, um manuell befassen sich mit jedes element.
InformationsquelleAutor der Antwort anveo
Können Sie
jQuery.post( url, data, callback, type)
, so seine einfacher zujQuery.ajax( options )
.Mithilfe
Serialisierung
, können Sie das gesamte Formular automatisch.Ein vollständigeres Beispiel:
Dies würde überschreiben die Standard -
post
, und führen Sie es mit AJAX.InformationsquelleAutor der Antwort Esteban Küber
Wenn Sie haven ' T versuchte es dennoch. Dann erstellen Sie eine GROßEN form (nun, was auch immer du damit meinst), und verwenden Sie
$.ajax()
oder jQuery Forms-plugin, um es zu veröffentlichen. Sie werden wissen, ob es für diese Art der Dinge, oder nicht!BEARBEITEN:- (nach dem edit), Dann Formen plugin ist für Sie! Give it a shot.
InformationsquelleAutor der Antwort TheVillageIdiot
Versuchen die jquery form plugin.
Es wahrscheinlich macht genau das, was Sie tun müssen, um aus der box.
InformationsquelleAutor der Antwort mkoryak
Hab ich eher komplexen (groß -) Formen mit $.ajax() und hatte keine Problem. Ich habe nicht gesendete Dateien über ajax-Anfragen, aber ich habe es getan und es funktioniert besser dann traditionelle Beiträge, weil es nicht binden Sie den browser, während Sie Sie hochladen.
Basierend auf Ihren Kommentar zu @zombat, Meine Vermutung ist es, dass Sie über eine sehr große Anzahl von Eingängen, die meisten von denen gehen leer sein, die meisten der Zeit. Zwei Vorschläge hier 1) teilen Sie die Eingänge in separate Formulare und senden nur jedem, sobald es berührt wird/abgeschlossen. 2) prüfen Sie den Zustand des Formulars mit JavaScript und wickeln Sie die Informationen in JSON oder XML, und Statt der Entsendung der Formular-Daten, post-nur die Daten-Struktur.
"Großen" sollte kein problem sein, vielleicht finden Sie eine bessere Adjektiv, um zu beschreiben, Ihre Daten, damit jeder weiß, warum es schwer ist, zu senden.
InformationsquelleAutor der Antwort John F. Miller
Was du fragst ist nicht schwer. Alles, was Sie tun müssen ist, sammeln Sie die Inhalte aus dem Formular auf und übergeben es auf deinen server (in der Regel Verwendung von JSON).
Werfen Sie einen Blick in dieses howto:
http://code.tutsplus.com/tutorials/submit-a-form-without-page-refresh-using-jquery--net-59
InformationsquelleAutor der Antwort Santi