Показать сообщение отдельно
  #1 (permalink)  
Старый 21.10.2016, 23:55
Интересующийся
Отправить личное сообщение для Navka1 Посмотреть профиль Найти все сообщения от Navka1
 
Регистрация: 21.10.2016
Сообщений: 12

Отправка письма несколько раз
Здравствуйте, уважаемые!
Возникла следующая проблема.
Есть код в js:

function dist()
{
....
if (distance > radius)
		{									
			fullmarker[i]['marker'].setVisible(false);			
		}	
		else 
		{										
			fullmarker[i]['marker'].setVisible(true);
			//var markeremail ='title=' +JSON.stringify(fullmarker[i]['marker']['title']);
			markeremail.push(fullmarker[i]['marker']['title']);			
		}

Отправляю массив markeremail через ajax в php:

$("#formMain").submit(function()
	{ 
		var form = $(this); 
		var error = false; 
		form.find('input, textarea').each( function(){ 
			if ($(this).val() == '') { 
				alert('Зaпoлнитe пoлe "'+$(this).attr('placeholder')+'"!'); 
				error = true; 
			}
		});
		if (!error) 
		{ 
			var data = form.serialize();
			$.ajax
			({ 
			    type: 'POST', 
			    data: {data: data, markeremail: markeremail},
			    url: '../php/mail.php', 
			    beforeSend: function(data) 
			    { 
		            form.find('input[type="submit"]').attr('disabled', 'disabled'); 
		        },
				error: function()
				{
					alert ("Ошибка отправки ajax");
				},
				success: function(data)
				{        		
					alert(data);
		       		alert('Письмo oтврaвлeнo! Чeкaйтe пoчту! =)'); 
					//markeremail = [];
		       		
		        },
		       complete: function(data) 
			    { 
		            form.find('input[type="submit"]').prop('disabled', false); 
		        }		                  
			});
		}
		return false; 
	});

PHP отправляет массив на почту:
<?php
if ($_POST)
{						$cats = array_values($_POST['markeremail']); //убираем ключи "cat[]"
						$post_category = implode(", ", $cats); //преобразуем массив в строку значений
						echo $post_category;
						//$markerEN = json_encode($_POST['markeremail']);
						//$markerDEC = json_decode($markerEN);
						//var_dump($markerDEC);		
						//var_dump(json_decode(json_encode($_POST['markeremail']),true));	 					
						$to  = "katarina_98@mail.ru";
						$_POST['email']; 
						$subject = "Ваши сохраненные места!"; 
						$message = ' 
						<html> 
							<head> 
								<title>Ваши сохраненные места на сайте:</title> 
							</head> 
							<body> 
								<p>'
								.$post_category.
								'</p> 
							</body> 
						</html>'; 

						$headers  = "Content-type: text/html; charset=windows-1251 \r\n"; 
						$headers .= "From: katarina_98@mail.ru \r\n"; 						

						mail($to, $subject, $message, $headers);											
}
?>


Ух и много кода получилось. Но без него не объяснить всей ситуации.
Проблема в том, что при первой отправке письма все происходит корректно. Когда в этой же сессии отправляешь новые значения - отправляются сначала все письма, которые были до этого и только потом последние значения.
Вопрос: как избавиться от этого дублирования? Предполагаю, что необходимо очищать массив markeremail после каждой отправки письма.
Но когда я пыталась очищать массив (markeremail =[]) и в аяксе, и до, и после него - появлялась куча ошибок, но дублирование не прекращалось...
Помогите подсказкой или советом, уж больно сложная для меня задачка...
Спасибо заранее!
Ответить с цитированием