Здравствуйте, уважаемые!
Возникла следующая проблема.
Есть код в 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 =[]) и в аяксе, и до, и после него - появлялась куча ошибок, но дублирование не прекращалось...
Помогите подсказкой или советом, уж больно сложная для меня задачка...
Спасибо заранее!