Вход

Просмотр полной версии : Добавление данных в ajax


Alexei91
17.06.2015, 10:00
Есть ajax отправки формы:

$(document).on("submit", ".eform", function (e) {

e.preventDefault();
var result;

var m_method = $(this).attr('method');

var m_action = $(this).attr('action');

var m_data = $(this).serialize();
$.ajax({
type: m_method,
url: m_action,
data: m_data,
resetForm: 'true',
success: (function (result) {
if (result == 'success') {
msg = 'Ваше сообщение было отправлено';
}
else {
msg = 'Ошибка';
}
return false;

})
});
});

при нажатии кнопки отправки формы на странице динамически подгружается контент, и этот же контент должен быть передан в форме. Но возникает проблема в том, что при первой отправке формы контент не передаётся-я так понял он просто не успевает попасть в форму до отправки. Подскажите как сделать в таком случае сбор данных после нажатия кнопки отправки?

laimas
17.06.2015, 11:18
подгружается контент, и этот же контент должен быть передан в форме.

И зачем грузить с сервера в форму то, что опять будет передано на север, если оно и так уже на сервере? Что за контент?

Alexei91
17.06.2015, 11:34
Вообще это я так жёстко делаю быстрый заказ.Наверно я неправильно выразился-контент не грузится-просто данные получаю. Там много чего завязано на корзину и я пытаюсь сделать так: по клику параметры товара передаются в корзину, и в форму, ну и форма отправляется ajax-ом. Первая отправка получается пустая. Если просто добавить товар в корзину и отправить ajax-ом работает уже с первого раза

laimas
17.06.2015, 12:17
Добавление товара в корзину происходит на сервере, а не на клиенте. Если форма, это есть и выбор товара, и сразу же оформление заказа, то клиенту возвращать вообще ничего не надо - пришла форма, товары в форме помещены в корзину, а клиенту возвращается результат, или же форма для заполнения контактных данных для оформления заказа, или....

Иначе добавление товара в корзину это одна операция, а оформление заказа совсем иная. А для выполнения предварительного запроса перед основным запросом можно использовать метод .pipe() jQuery.

Alexei91
17.06.2015, 15:30
пытался разобраться, но толком так и не понял-я наверно совсем неправильно всё объяснил. может пример поможет: http://mirintima.prodvizhenec.by/dlya-neyo/
там если нажать на кнопку "купить" выпадает окно-мне нужно реализовать ввод номера и кнопку заказать. Серверная часть вся сделана и добавление товара работает как надо. Сама форма при первой отправке передаёт пустые поля со значением товара, при второй нормально всё.

laimas
17.06.2015, 17:30
Не видно, чтобы что-то работало, по крайне мере жмешь что В корзину, что Заказать, какое-то приведение перемещается в корзину, в любом из этих случаев, а чтобы корзина при этом пополнялась не видно. Не понятно нужен ли при этом ввод номера тф., или это по желанию, ибо реакции со стороны клиента и сервера никакой.
Если отправляется пустое, значит:

а) либо в форму при выборе на странице ничего не попадет, проверяйте это в отладчике (F12)

б) либо организация приема данных от клиента и получение формы имеет ошибки, как то прием формы затирает данные в сессии, если она используется в сценарии.

г) другие причины, которые надо выяснять