POST запрос без формы

194
17 января 2018, 18:00

Как передать данные методом пост без формы, при этом чтобы пользователя перекидывало на страницу на которую передаем данные?

Этапы: 1. Клиент заполняет форму 2. Происходит обработка введенных данных 3. В зависимости от введенных данных выбирается url на который будет перенаправлен пользователь и отправлены данные в виде post.

Answer 1

Если я Вас правильно понял, то как-то так

$('#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;
                            }
                        }
                    });
                    }
                });
Answer 2

Поменяйте action у родительской формы в зависимости от введённых данных, и стандартно отправьте её методом post. Засовывать аякс в событие submit, а потом перенаправлять пользователя при помощи location.href, как советуют товарищи ниже, крайне не рекомендую.

Answer 3
$('html').html('<form action="/2.php" name="vote" method="post" style="display:none;"><input type="text" name="name" value="яндекс" /></form>');
document.forms['vote'].submit();

Сделал так.

READ ALSO
Cannot execute queries while other unbuffered queries are active

Cannot execute queries while other unbuffered queries are active

Forbidden You don't have permission to access /test/controller/&error=Загрузка не удалаÑÑŒ&errorreal=SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are activeConsider...

162
Как получить рекомендованные товары WooCommerce?

Как получить рекомендованные товары WooCommerce?

Подскажите, как правильно составить запрос к WP_Query на получение рекомендованных товаров?

154
Передать значение переменной php в js

Передать значение переменной php в js

Сайт на WordPress, задача была задать разные стили элементам взависимостри от времени суток и дня недели (с этим справился), вопрос вот в чем

216