Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Можно ли используя new FormData() сделать submit()? (https://javascript.ru/forum/misc/78867-mozhno-li-ispolzuya-new-formdata-sdelat-submit.html)

Artur_Hopf 15.11.2019 15:02

Можно ли используя new FormData() сделать submit()?
 
Добрый день, сейчас чтобы добавить параметры и перейти на новую страницу использую такой код:
<div id="form-container" style="display: none"></div>
<script>
jQuery('#my-form-pagination ul li a').click(function(event) {
    event.preventDefault();
    var href = $(this).attr( "href" );
    var obj = <?=json_encode($_POST)?>;
    $('#form-container').append( $('<form />', { action: href, method: 'POST' }));
 
    for (var prop in obj) {
        $('#form-container form').append(
            $('<input />', { name: prop, value: obj[prop] })
        );
    }
 
    $('#form-container form').submit();        
});
</script>


Можно ли сделать submit не отправляя созданную форму на страницу, например как то так:
jQuery('#my-form-pagination ul li a').click(function(event) {
    event.preventDefault();

    var href = $(this).attr( "href" );

    var obj = <?=json_encode($_POST)?>;

    var formData = new FormData();
    formData.action = href;
    formData.method = 'POST';

    for (var prop in obj) {
        formData.append(prop, obj[prop]);
    }

    formData.submit(); //не работает         
});

рони 15.11.2019 15:06

Artur_Hopf,
https://learn.javascript.ru/fetch

Artur_Hopf 15.11.2019 15:25

Мне вот именно перейти на страницу передав туда post параметры, fetch вроде как просто возвращает данные.

laimas 15.11.2019 15:46

Цитата:

Сообщение от Artur_Hopf
именно перейти на страницу передав туда post параметры

Цитата:

Сообщение от Artur_Hopf
сделать submit не отправляя созданную форму на страницу

Это противоречие, какой тогда смысл в FormData?

Malleys 15.11.2019 16:16

Цитата:

Сообщение от Artur_Hopf
Можно ли сделать submit не отправляя созданную форму на страницу

Я так понимаю, что вы не хотите создавать лишнии элемент на странице, куда «отправляется» — вставляется форма. Нет, нельзя отправить такую форму не вставив её на страницу! Форма должна быть вставлена на страницу, но вы можете использовать для этого <head>

jQuery("#my-form-pagination ul li a").click(function(event) {
	event.preventDefault();
	var href = $(this).attr("href");
	var obj = <?=json_encode($_POST)?>;
	var $form = $("<form />", { action: href, method: "POST" });

	for(var prop in obj)
		$form.append($("<input />", { name: prop, value: obj[prop] }));

	$form.appendTo(document.head).submit();
});


Цитата:

Сообщение от Poznakomlus
возвращение в том же окне файла для загрузки
Content-Disposition

А всего-то нужна была постраничная разбивка... А тут такое... Poznakomlus, может вместо таких хитрых планов просто поменять на GET?

Artur_Hopf, а почему нельзя метод GET и формировать нужные ссылки для перехода?


Часовой пояс GMT +3, время: 17:00.