Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Передача данных с двух форм в php файл (https://javascript.ru/forum/events/65779-peredacha-dannykh-s-dvukh-form-v-php-fajjl.html)

kaspers 07.11.2016 11:51

Передача данных с двух форм в php файл
 
Добрый день. На сайте есть две формы - в одной пользователь выбирает услуги и их количество, а в другой водит свои данные. Необходимо передать всю эту информацию в php файл для дальнейшей отправки на почту администратора сайта. Использовать .serialize() у меня не получилось так как берутся данные только от одной формы. Было решено получить данные в массиве и с помощью .push добавить информацию в один общий массив.. С этим проблем не возникло, но вот почему-то сообщения на почту приходят с пустыми полями
$(".form").submit(function(event){
		var data = [];//общий массив
			$("#dopusugi").find("input[type=\"checkbox\"]:checked").each(function(){
				var element = [];//массив с услугами
				element['name'] = $(this).parents("tr").children("td.nazvanie").text();
				element['price'] = $(this).parents("tr").children("td:eq(3)").text();
				element['kol'] = $(this).parents("tr").children("td").children("input[type=\"text\"]").val();
				data.push(element);//добавление элемента в общий массив
			})
			var zakazchik = [];//массив с данными от заказчика
			zakazchik['name2'] = $("#modal_zakaz").find(".body_modal").find("input[name=\"name\"]").val();
			zakazchik['phone2'] = $("#modal_zakaz").find("input[name=\"phone\"]").val();
			zakazchik['mail2'] = $("#modal_zakaz").find("input[name=\"mail\"]").val();
			zakazchik['comment2'] = $("#modal_zakaz").find("textarea[name=\"comment\"]").val();
			data.push(zakazchik);  // добавление информации от заказчика в общий массив
  
			 
		$.ajax({
			url: '/feed.php',
			type:'post',  
			data:tdata,
			dataType:'json',
			beforeSend: function(){
            
			
			},
			success: function(json){
				if(json.result){
					console.log(data);
					}
				else{
					alert(json.text);
				}
			},
			complete: function(){
            	        //  alert("Завершаем");  
        	        }
		});
		
		event.preventDefault();
	});


В консоль выводится массив со всеми нужными данными..

а в php файле я прописал вот это

if(isset($_POST['name2']) && $_POST['name2']!=''){
			$name = trim(strip_tags($_POST['name2']));
		}else{
			$name = false;
		}


Но тут результат всегда false

Как передать данные на почту?

laimas 07.11.2016 13:22

Цитата:

Сообщение от kaspers
Использовать .serialize() у меня не получилось так как берутся данные только от одной формы.


$(селектор_формы_1).serialize()+'&'+$(селектор_формы_2).serialize()


И что одной формой нельзя было обойтись?

ksa 07.11.2016 13:22

kaspers, почему tdata в твоем "скрипте" встречается только один раз?
Цитата:

Сообщение от kaspers
data:tdata


kaspers 08.11.2016 17:48

Цитата:

Сообщение от ksa (Сообщение 434341)
kaspers, почему tdata в твоем "скрипте" встречается только один раз?

переменную tdata я использовал при serialize, а data при использовании массива.. когда заполнял вопрос на форуме, я поудалял лишний код и закомментированые строки.. и видимо не заметил, что передаю tdata.. Так что там просто опечатка, и там должно было быть data:data;

kaspers 08.11.2016 17:54

Цитата:

Сообщение от laimas (Сообщение 434340)
$(селектор_формы_1).serialize()+'&'+$(селектор_формы_2).serialize()


И что одной формой нельзя было обойтись?

Большое спасибо) ваше ответ помог, остались небольшие вопросы, но думаю что с ними уже сам разберусь)
Я пытался использовать serialize() для двух форм, но видимо ошибался в синктаксисе

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

laimas 09.11.2016 04:02

Цитата:

Сообщение от kaspers
Можно ли было реализовать это все на одной форме?

То есть без JS ваши заказчики как без рук будут. ) А если JS то конечно можно.


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