2014-09-17 5 views
0

Я ищу способ отправки по электронной почте содержимого динамически добавленного div. Идея состоит в том, что информационный бюллетень состоит из списка названий и текстов, отображаемых один за другим, когда пользователь нажимает на заголовок.Как написать динамическое содержимое

Когда текст отображается, пользователь может нажать кнопку «Отправить письмо», а затем его или ее почтовый клиент откроется с новым электронным письмом, в котором текст (содержимое рассматриваемого div) загружается в виде сообщения электронной почты (в идеале заголовок также должен отображаться в поле заголовка электронной почты). При щелчке по другому заголовку и отображению другого текста, конечно, этот текст должен быть отправлен по электронной почте.

Мое знание JavaScript ограничено, и я еще новичок в jQuery. Мой проект основывается на этом важном решении: How to display a second JSON element in JavaScript?, но, я думаю, также тесно связан с Create a function to send mail from a div. Очень важно, чтобы решение было легким, JavaScript только одностраничный скрипт не является вариантом.

Я был бы очень признателен за демонстрацию, JavaScript или jQuery, как это решить (я полагаю, что это функция body = [...] в функции snd()), и извините заранее, если это слишком наивный или слишком обманчиво простой вопрос.

Мой сценарий выглядит следующим образом:

<body> 

<script src="jquery.js"></script> 
<script type="text/javascript"> 
var article = [ 
    { 
     "title": "This is title no. 1", 
     "text": "Here is the text of the first article" 
    }, 
    { 
     "title": "This is title no. 2", 
     "text": "Here is the text of the second article" 
    }, 
    { 
     "title": "This is title no. 3", 
     "text": "Here is the text of the third article" 
    } 
] 

function getData() { 
    var html = ''; 
    for(i = 0; i < article.length; i++) { 
     html += "<li data-text='" + "'>" + article[i].title.link(article[i].text) + "</li>"; 
    } 
    $('#showData').html('<ul>' + html + '</ul>'); 
    $('#showData').on('click', 'a', function(e) 
     $('#showData .text').remove(); 
     $(this).after('<div class="text">' + $(this).attr('href') + '<p><button onclick="snd(); return false">Send email</button></div>'); 
     e.preventDefault();    
    }); 

} 
function snd() { 
    location.href = "mailto:"+"?subject=Article to read&body="+document.getElementsByClassName('description').innerHTML; 
} 

$(document).ready(function() { 
    getData(); 
}); 

</script> 
    <div id="showData"></div> 
</body> 

ответ

0

Я не думаю, что есть возможность отправлять сообщения электронной почты только с Java, так как это на стороне клиента. Для этого вам нужно использовать PHP. В PHP есть простой способ отправить E-Mail, проверьте это.

Вы можете разместить текст через AJAX в PHP-файле и отправить его.

0

Я хотел бы попробовать этот код в функции SND() и каким-то образом включить это в код

$("#div-id .steps").each(function(){ 
remoteAjax[$(this).attr("id")] = { 
    url : "email-content.php", // the url where you're sending data to be mailed 
    dataType : 'json', 
    beforeSubmit: function(data){$("#data-div").html("data sent to the server: " + $.param(data))}, //this would be something for debugging your data or use firebug 
    success : function(data){ 
    if(data){ //data is either true or false (returned from email-content.php) 
    simulating successful/failing   
    $("#data").append(" .... data sent successfully. Some type of message on your UI."); 
    }else{ 
    alert("Some type of error that the data wasn't sent successfully and something went wrong."); 
    } 

В электронном-content.php файл, вы можете сформировать свой предмет, с, сообщение и получить реальную фантазию с проверкой домена, чтобы убедиться, что вы даже можете отправить почту в этот домен, если это необходимо.

Вы хотите создать шаги в своем коде, чтобы иметь такой уровень сложности.

Смежные вопросы