JQuery AJAX отправить форму

Для начала вы можете использовать динамическое программирование.

В вашем прямом подходе вы делаете точно такие же вычисления много раз.

Например, в какой-то момент вы ответьте на вопрос: «Для последних трех столбцов с уже занятыми строками 1 и 2, как я могу максимизировать сумму?» Вы дважды вычисляете ответ на этот вопрос, один раз, когда вы выбираете строку 1 из столбца 1 и строки 2 из столбца 2 и один раз, когда вы выбираете их наоборот.

Так что не делайте этого. Cache ответ, а также кешировать все похожие ответы на все подобные вопросы - и повторно использовать их.

У меня нет времени прямо сейчас, чтобы проанализировать время работы этот подход. Я думаю, что это O (2 ^ n) или около того. Позже может быть ...

855
задан abhinav3414 30 April 2018 в 12:46
поделиться

3 ответа

Вы можете использовать функции ajaxForm/ajaxSubmit из Ajax Form Plugin или функцию сериализации jQuery.

AjaxForm:

$("#theForm").ajaxForm({url: 'server.php', type: 'post'})

или

$("#theForm").ajaxSubmit({url: 'server.php', type: 'post'})

ajaxForm отправит при нажатии кнопки отправки. ajaxSubmit отправляет немедленно.

Serialize:

$.get('server.php?' + $('#theForm').serialize())

$.post('server.php', $('#theForm').serialize())

AJAX документация по сериализации находится здесь.

.
781
ответ дан 22 November 2019 в 21:06
поделиться

Я знаю, что это jQuery связанный вопрос, но теперь дни с вещами JS ES6 намного легче. С тех пор нет никакого чистого javascript ответ, я думал, что мог добавить простое чистое javascript решение этого, которое, по-моему, является намного более чистым, при помощи fetch() API. Это современный путь к сетевым запросам реализаций. В Вашем случае, так как у Вас уже есть элемент формы, мы можем просто использовать его для создания нашего запроса.

const form = document.forms["orderproductForm"];
const formInputs = form.getElementsByTagName("input"); 
let formData = new FormData(); 
for (let input of formInputs) {
    formData.append(input.name, input.value); 
}

fetch(form.action,
    {
        method: form.method,
        body: formData
    })
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.log(error.message))
    .finally(() => console.log("Done"));
1
ответ дан 22 November 2019 в 21:06
поделиться

Есть также событие submit, которое может быть вызвано следующим образом $("#form_id").submit(). Вы бы использовали этот метод, если форма уже хорошо представлена в HTML. Вы просто читаете на странице, заполняете входные данные формы материалом, затем вызываете .submit(). Он будет использовать метод и действие, определенные в объявлении формы, так что вам не нужно копировать его в ваш javascript.

examples

-21
ответ дан 22 November 2019 в 21:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: