Mam formularz o nazwie orderproductForm
i nieokreślonej liczbie wejść.
Chcę zrobić coś w rodzaju jQuery.get lub ajax lub cokolwiek podobnego, co wywołałoby stronę poprzez Ajax, i wysłało wszystkie dane wejściowe z formularza orderproductForm
.
Przypuszczam, że jednym ze sposobów byłoby zrobienie czegoś takiego jak
jQuery.get("myurl",
{action : document.orderproductForm.action.value,
cartproductid : document.orderproductForm.cartproductid.value,
productid : document.orderproductForm.productid.value,
...
Jednak nie znam dokładnie wszystkich danych wejściowych formularza. Czy istnieje cecha, funkcja lub coś, co po prostu wysłałoby WSZYSTKIE dane wejściowe formularza?
To jest proste odniesienie:
// 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.
}
});
});
Mam nadzieję, że to ci pomoże.
Możesz użyć funkcji ajaxForm/ajaxSubmit z Ajax Form Plugin lub funkcji serialize jQuery.
AjaxForm:
$("#theForm").ajaxForm({url: 'server.php', type: 'post'})
lub
$("#theForm").ajaxSubmit({url: 'server.php', type: 'post'})
ajaxForm wyśle po naciśnięciu przycisku wysyłania. ajaxSubmit wysyła natychmiast.
Serialize:
$.get('server.php?' + $('#theForm').serialize())
$.post('server.php', $('#theForm').serialize())
Istnieje również zdarzenie submit, które może być wywołane w następujący sposób $("#form_id").submit(). Używałbyś tej metody, jeśli formularz jest już dobrze reprezentowany w HTML. Po prostu wczytaj stronę, wypełnij dane wejściowe formularza rzeczami, a następnie wywołaj .submit(). Użyje ona metody i akcji zdefiniowanej w deklaracji formularza, więc nie musisz jej kopiować do swojego javascriptu.