2015-07-08 2 views
1

У меня есть страница с различными элементами. Я использую некоторый jquery, чтобы получить все элементы с отмеченным полем выбора, отправить их через Ajax в почтовую функцию (_POST). Однако, когда я получаю HTML-код в мой Inbox, все остальное кажется прекрасным, кроме нагрузки обратных косых черт в моем HTML. Но только HTML, который курсирует из таблиц. Сообщение HTML, такое как head и doctype, все в порядке. Я предполагаю, что мне нужно каким-то образом закодировать и декодировать мой POST.Ajax html через метод POST для почтовой функции

  jQuery('#search-query-send').click(function() { 

       var content = '';    
       var email = jQuery('#email').val(); 

       jQuery('.selectthis input:checked').each(function() { 
       content += jQuery(this).parents('div.apartment-entry-container').html(); 
       }); 



       jQuery.ajax({ 
       url: "http://www.greenmonkeypublicrelations.com/scpads/wp-admin/admin-ajax.php", 
       type: 'POST', 
       data: 'action=apartmentsearchemail&email=' + email + '&content=' + content, 
       success: function(result) { 
        //got it back, now assign it to its fields.      
        alert('Your message has been sent.'); 
        console.log(result); 
       } 
       }); 
      }); 

Строка кода из моего почтового ящика.

<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" class=\"bookings-aligntop container-table apartment-entry\"> 
+0

вопрос с в admin-ajax.php в stripslashes ($ _POST [ 'содержание']); –

+0

Вы имеете в виду, что у строки, содержащей строку, есть лишние нежелательные косые черты? –

ответ

1

добавить stripslashes ($ mail_body) на ajax.php файл

$msg = 
"<html xmlns='http://www.w3.org/1999/xhtml'> 
<body bgcolor='#FFD75B'><br /><br /> 
<table cellpadding='10' cellspacing='0' border='0' align='center' bgcolor='#ffffff'> 
<tr> 
    <td align='center'><img src='http://www.BSFlag.com/images/BS-flagGIF.gif' width='301' height='141' /></td> 
</tr> 
<tr> 
    <td align='center' width='600'><h1>" . $FromEmail . " has sent you the BS Flag</h1> 
    <h2>for the following reasons:</h2> 
<blockquote>" . $Reason . "</blockquote> 
<p><em>Learn more about the BS Flag at <a href='http://www.bsflag.com'>www.bsflag.com</a>.</em></p></td> 
</tr> 
</table> 
<br /><br /> 
</body> 
</html>"; 


//send mail 
$headers = "MIME-Version: 1.0\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1\n"; 
$headers .= "X-Priority: 3\n"; 
$headers .= "X-MSMail-Priority: Normal\n"; 
$headers .= "X-Mailer: php\n"; 
$headers .= "From: "".$companyName."" <".$companyEmail.">\n";  

mail("$to", stripslashes($subject), stripslashes($msg), $headers) or die("Could not send e-mail - Error A46GY7"); 
1

Вы можете попробовать: http://api.jquery.com/jquery.parsehtml/

var html = $.parseHTML(content); 

jQuery.ajax({ 
      url: "http://www.greenmonkeypublicrelations.com/scpads/wp-admin/admin-ajax.php", 
      type: 'POST', 
      data: 'action=apartmentsearchemail&email=' + email + '&content=' + html, 
      success: function(result) { 
       //got it back, now assign it to its fields.      
       alert('Your message has been sent.'); 
       console.log(result); 
      } 
      }); 

Убедитесь, что его обрабатывается на стороне PHP

$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; 
$headers .= 'From: <[email protected]>' . "\r\n"; 
mail($to, $subject, $body, $headers); 
Смежные вопросы