Как передать данные методом пост без формы, при этом чтобы пользователя перекидывало на страницу на которую передаем данные?
Этапы: 1. Клиент заполняет форму 2. Происходит обработка введенных данных 3. В зависимости от введенных данных выбирается url на который будет перенаправлен пользователь и отправлены данные в виде post.
Если я Вас правильно понял, то как-то так
$('#f-form__callback').on('submit', function(e){
var fdata = $(this).serialize();
var ajaxUrl = '';
e.preventDefault(); // блокируем стандартную отправку формы
// ваша обработка данных в которых вы определяете куда отправить данные
// в зависимости от ваших обработок устанавливаете ajaxUrl
if (someVar = 'someValue') ajaxUrl = '/some/url';
if (ajaxUrl !== '') {
// если вы поняли куда отправлять данные, то делаем это через ajax
$.ajax({
url: ajaxUrl,
type: 'post',
dataType: 'text',
data: fdata,
success: function (data) {
// в data содержится адрес, куда вы будете перенаправлены, если у вас есть эта обработка на сервере
if (data) {
window.location.href = data;
} else {
window.location.href = ajaxUrl;
}
}
});
}
});
Поменяйте action у родительской формы в зависимости от введённых данных, и стандартно отправьте её методом post. Засовывать аякс в событие submit, а потом перенаправлять пользователя при помощи location.href, как советуют товарищи ниже, крайне не рекомендую.
$('html').html('<form action="/2.php" name="vote" method="post" style="display:none;"><input type="text" name="name" value="яндекс" /></form>');
document.forms['vote'].submit();
Сделал так.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости