Ich habe eine jQuery Ajax-Funktion und möchte ein ganzes Formular als Post-Daten. Wir aktualisieren ständig das Formular, so dass es mühsam wird, die Formulareingaben, die in der Abfrage gesendet werden sollen, ständig zu aktualisieren.Vollständige Form als Daten in jQuery Ajax-Funktion übergeben
Antwort
Es gibt eine Funktion, die tut genau dies:
http://api.jquery.com/serialize/
var data = $('form').serialize();
$.post('url', data);
$ .post kann auch eine Funktion auf Erfolg aufrufen. $ .post ('url', data, function() {....}); – slm
hinweis: die form felder müssen die name attribute gesetzt, nur mit ID funktioniert nicht wie dokumentiert und wie ich aus erster hand. –
Genie, danke !! –
Verwenden
var str = $("form").serialize();
ein Formular zu einem Query-String serialisiert, die auf einen Server in einer Ajax-Anfrage gesendet werden können.
Im allgemeinen Gebrauch serialize()
auf dem Formularelement.
Bitte beachten Sie, dass mehrere < wählen > Optionen unter dem gleichen Schlüssel, z.
<select id="foo" name="foo" multiple="multiple">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>
wird in einer Abfragezeichenfolge führen, die mehrere Vorkommen des gleichen Abfrageparameter enthält:
[path]?foo=1&foo=2&foo=3&someotherparams...
, die möglicherweise nicht, was Sie im Backend wollen.
I diesen Code verwenden JS mehrere Parameter auf eine durch Kommata getrennte einzelne Taste (schamlos von einer Reaktion der Kommentator in einem über an John Resig Platz Thread kopiert) zu reduzieren:
function compress(data) {
data = data.replace(/([^&=]+=)([^&]*)(.*?)&\1([^&]*)/g, "$1$2,$4$3");
return /([^&=]+=).*?&\1/.test(data) ? compress(data) : data;
}
, die in die oben dreht:
[path]?foo=1,2,3&someotherparams...
In Ihrem JS-Code Sie es so nennen würde:
var inputs = compress($("#your-form").serialize());
Hoffe das hilft.
Das ist großartig. Ja, es sollte durch Komma getrennt sein. –
Wenn Sie PHP verwenden, ist es trivial ein Querystring mit parse_url Funktion zu analysieren: http://us3.php.net/manual/en/function.parse-url.php – Lobos
Ich weiß, das ist alt, aber woher weißt du was Option (en) wurden mit dieser Methode ausgewählt? – yardpenalty
serialize() ist keine gute Idee, wenn Sie ein Formular mit Post-Methode senden möchten. Zum Beispiel, wenn Sie eine Datei über Ajax weitergeben wollen, wird es nicht funktionieren.
die bessere Lösung ist es, eine Formdata zu machen und senden:
var myform = document.getElementById("myform");
var fd = new FormData(myform);
$.ajax({
url: "example.php",
data: fd,
cache: false,
processData: false,
contentType: false,
type: 'POST',
success: function (dataofconfirm) {
// do something with the result
}
});
Funktioniert das nicht nur mit HTML5? –
Ja, es wird von aktualisierten Browsern unterstützt, aber bei Verwendung von serialisiert können Sie nur Zeichenfolgen übergeben. –
Vielleicht sollten Sie das in Ihrer Antwort erwähnen –
Eine gute Option jQuery dies durch FormData zu tun ist. Diese Methode eignet sich auch beim Senden von Dateien über ein Formular!
<form id='test' method='post' enctype='multipart/form-data'>
<input type='text' name='testinput' id='testinput'>
<button type='submit'>submit</button>
</form>
Ihre Sendefunktion in jQuery würde wie folgt aussehen:
$('form#test').submit(function(){
var data = new FormData($('form#test')[ 0 ]);
$.ajax({
processData: false,
contentType: false,
data: data,
dataType: 'json',
type: $(this).attr('method');
url: 'yourapi.php',
success: function(feedback){
console.log("the feedback from your API: " + feedback);
}
});
hinzufügen Daten zu Ihrem Formular können Sie entweder einen versteckten Eingang in Ihrem Formular verwenden, oder Sie es on the fly hinzufügen:
var data = new FormData($('form#test')[ 0 ]);
data.append('command', 'value_for_command');
<form id="add-item-form">
. . .
</form>
<script>
$('#add-item-form').submit(function (event) {
event.preventDefault();
var data = $('#add-item-form').serialize();
$.post("/Item/AddItem", data, function (response) {
. . .
});
});
</script>
Sie müssen nur die Daten veröffentlichen. und Verwenden von jquery ajax-Funktionsparameter festlegen. Hier ist ein Beispiel.
<script>
$(function() {
$('form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'your_complete url',
data: $('form').serialize(),
success: function (response) {
//$('form')[0].reset();
// $("#feedback").text(response);
if(response=="True") {
$('form')[0].reset();
$("#feedback").text("Your information has been stored.");
}
else
$("#feedback").text(" Some Error has occured Errror !!! ID duplicate");
}
});
});
});
</script>
- 1. Formular nicht vollständige Daten senden
- 2. übergeben jquery Selektor als Parameter
- 3. Objekt als Parameter an jQuery-Dialog übergeben?
- 4. Wie kann ich die Daten separat in Jquery übergeben
- 5. Mehrere Daten in angularjs übergeben
- 6. jQuery fehlgeschlagen JSON-Daten als Option wählen
- 7. R-Daten als Eingabe an HTML übergeben?
- 8. Berechnung in jQuery Form
- 9. jQuery Animationen in Form
- 10. Übergeben von Daten mit jquery ajax
- 11. Kann keine Zeichenfolge übergeben als Funktionsargument Jquery
- 12. Daten zwischen Seiten mit jQuery Mobile übergeben?
- 13. Übergeben binäre Datei als JSON-Parameter mit Multipart/Form-Daten mit Hilfe von Curl POST
- 14. jQuery Datepicker vorherige vollständige Monate
- 15. Konvertieren von SQL-Monat von numerischen in vollständige geschriebene Form
- 16. Vollständige Form von "DSL" in Query DSL - elastische Suche
- 17. Was ist die vollständige Form von LDC in Opcode
- 18. Android Form als Aktivität
- 19. codeigniter: form validation jquery
- 20. Übergeben String-Array als Daten in Jquery Ajax zu Web-API
- 21. Wie übergeben Sie Ereignis als Parameter in JQuery-Funktion
- 22. MVC-Modell in jquery deklarieren und als Datenparameter übergeben
- 23. in .NET übergeben Sie eine Klasseninstanz/Schnittstelle als Parameter übergeben Sie ein Objekt oder die vollständige vtable
- 24. Django Rastrahmen keine Daten deserialisiert als JSON übergeben
- 25. ASP.NET: Form Buchung über jQuery
- 26. jQuery - die Einreichung von Daten (Form vs Ajax Post)
- 27. Iterate durch Form und Druckwerte nur mit Daten in Form
- 28. $ .get jquery Funktion gibt eine vollständige HTML-Seite anstelle von JSON in Daten zurück
- 29. jQuery/Javascript erhalten Form Daten wie ein Post-Array
- 30. Codierung von JSON-Daten als x-www-form-urlencoded
Moh ist korrekt über FormData() und Bilder. Aber um weiter zu klären. Serialisierung funktioniert nur mit Strings (keine Binärdaten). Die FormData() - Funktion funktioniert mit Formularen, deren Codierungstyp auf "multipart/form-data" festgelegt ist. Details hier: https://developer.mozilla.org/en-US/docs/Web/API/FormData –