Jeg har en formular med navnet `orderproductForm
og et udefineret antal indgange.
Jeg ønsker at lave en slags jQuery.get eller ajax eller noget lignende, der ville kalde en side via Ajax, og sende alle input fra formularen orderproductForm
med.
Jeg formoder, at en måde ville være at gøre noget som
jQuery.get("myurl",
{action : document.orderproductForm.action.value,
cartproductid : document.orderproductForm.cartproductid.value,
productid : document.orderproductForm.productid.value,
...
Men jeg kender ikke præcis alle formularindgange. Er der en funktion, funktion eller noget, der bare ville sende ALLE formularinput?
Dette er en simpel reference:
// this is the id of the form
$("#idForm").submit(function(e) {
e.preventDefault(); // avoid to execute the actual submit of the form.
var form = $(this);
var url = form.attr('action');
$.ajax({
type: "POST",
url: url,
data: form.serialize(), // serializes the form's elements.
success: function(data)
{
alert(data); // show response from the php script.
}
});
});
Jeg håber, det hjælper dig.
Du kan bruge ajaxForm/ajaxSubmit-funktionerne fra Ajax Form Plugin eller jQuery-serialise-funktionen.
AjaxForm:
$("#theForm").ajaxForm({url: 'server.php', type: 'post'})
eller
$("#theForm").ajaxSubmit({url: 'server.php', type: 'post'})
ajaxForm sender, når der trykkes på knappen submit. ajaxSubmit sender straks.
Serialize:
$.get('server.php?' + $('#theForm').serialize())
$.post('server.php', $('#theForm').serialize())
Der er også en submit-hændelse, som kan udløses på følgende måde $("#form_id").submit(). Du'ville bruge denne metode, hvis formularen allerede er godt repræsenteret i HTML. Du vil bare læse siden ind, udfylde formularindgangene med ting og derefter kalde .submit(). Den bruger den metode og handling, der er defineret i formularens deklaration, så du behøver ikke at kopiere den ind i dit javascript.