Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Отправка данных Jquery (https://javascript.ru/forum/jquery/72804-otpravka-dannykh-jquery.html)

Andreysolomon 27.02.2018 13:51

Отправка данных Jquery
 
Нужно брать все input'ы находящиеся на странице и отправлять post запросом на handler.php
Как это реализовать?

j0hnik 27.02.2018 14:08

$( "form" ).on( "submit", function(e) {
$.ajax({
		type: "POST",
		url: "handler.php",
		data: data
	})
});

Andreysolomon 27.02.2018 14:11

j0hnik, а вот если тип input'a указан file (type=file), будет ли ваш код корректно работать при отправке pdf файла?
Просто ПК под рукой нет, не могу сам протестить
UPD: я думал это с помощью цикла только можно сделать... И еще: переменная data, как я понял, это то, что юзер в инпут ввел, верно? И как получать эти данные в файле handler.php, ну точнее какой параметр в $_POST['тут что?'];

j0hnik 27.02.2018 14:14

все инпуты внутрь тега <form></form> или в инпуте установить атрибут form

Andreysolomon 27.02.2018 14:16

Тоесть, с отправкой pdf файлов проблем не должно быть, верно? Нужно только тип в form указать, да?
я думал это с помощью цикла только можно сделать... И еще: переменная data, как я понял, это
то, что юзер в инпут ввел, верно? И как получать эти данные в файле handler.php, ну точнее какой параметр в $_POST['тут что?'];

laimas 27.02.2018 15:52

Цитата:

Сообщение от Andreysolomon
Тоесть, с отправкой pdf файлов проблем не должно быть, верно? Нужно только тип в form указать, да?

Будут, ибо отправление файла, это уже иной ectype. Атрибут form к этому отношения не имеет, этот атрибут связывает поле с формой, будучи не размещенным в ней, всего лишь.

Nexus 27.02.2018 16:42

Я некоторое время назад такой скрипт для использовал:
$('form.async').submit(function(e){
	e.preventDefault();

	var $form=$(this),
		$this=$form.find('[type="submit"]'),
		invalid_class='invalid';

	if($form.find('[name][required]').removeClass(invalid_class).filter(function(){
		return !this.value.trim().length;
	}).addClass(invalid_class).first().each(function(){
		this.focus();
	}).length || $this.attr('disabled')!==undefined)
		return;

	$this.attr('disabled',true);
	var method=($form.attr('method')||'post').toLowerCase(),
		is_formdata=(!!window.FormData && method=='post' && $form.find('[type="file"]').length),
		xhr_params=$.extend({},{
			url:$form.attr('action'),
			method:method,
			data:is_formdata?(new FormData($form.get(0))):$form.serialize(),
			error:function(xhr,text_status,text_error){
				//тут обработчик ошибки
			},
			success:function(res,xhr,text_status){
				//тут обработчик успешного окончания запроса 
			},
			complete:function(xhr,text_status){
				$this.removeAttr('disabled');
			}
		},is_formdata?{
			contentType:false,
			processData:false
		}:{});

	$.ajax(xhr_params);
});


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