获取整个 div 及其元素并使用 php 邮件功能发送
Posted
技术标签:
【中文标题】获取整个 div 及其元素并使用 php 邮件功能发送【英文标题】:GET entire div with its elements and send it with php mail function 【发布时间】:2012-02-15 00:32:46 【问题描述】:我正在尝试为用户创建一个发送电子邮件的功能,该电子邮件应仅包含页面中的 1 个 div(注意:该 div 具有先前使用 jquery 拖动和克隆功能添加的元素)。我不知道如何复制整个 div 及其子元素并将它们添加到隐藏字段中,以便我以后可以使用 POST 方法发送它们,然后使用电子邮件功能发送它。有什么想法和建议吗?
感谢您的宝贵时间和帮助
【问题讨论】:
$('#divid').text();
或 $('#divid').html();
将为您提供源... $('#hiddenid').val(valuefromabove);
将设置它
既然你说你在使用 jQ 这很容易 - 只需 var theHTML = '<div>'+$('#idOfDiv').html().'</div>';
是否需要复制整个 div,还是您真的想要 within div 元素的值?
请注意,大多数电子邮件客户端(包括 Outlook 2007、Gmail、Hotmail、Yahoo Mail 等)呈现的 HTML 和 CSS 元素集非常有限。即,虽然您可以发送它,但 HTML 最终可能看起来像电子邮件一样糟糕。
【参考方案1】:
比如说你的 html 是这样的
<div id="email-data">
<div id="content">
some Data Here
</div>
</div>
<a id="sendEmail" >Send Email</a>
您可以使用 jquery 选择 div 并通过 ajax 将数据发送到 php 文件,然后从该文件发送电子邮件
$(document).ready(function()
$('#sendEmail').click(function()
$.ajax(
type: 'POST',
url: 'sendEmail.php',
data: content: $('#email-data').html()
);
);
);
在后端,您可能会检查 $_POST['content'] (比如说我使用 php)并相应地修改您的逻辑。这是Jsfiddle 代码
【讨论】:
我试过了,但它无法通过 $_POST['data'] 获取信息!这是项目:arbamedia.com/test 这是 me_sukses.php 页面: 有些东西不工作我认为问题出在 .click 功能上 如果是动态添加按钮,需要使用"live而不是"click",所以函数会变成$('#sendEmail').live('click',function( )...); 也许我遗漏了一些我不知道的东西,它只是不起作用!我试图找到问题,但没有.. 您能否更具体一点,是 ajax 不起作用,还是 js 错误,还是在 php 端。我已经更新了上面的代码和jsfiddle link。【参考方案2】:假设您有一个 ID 为 mail
的表单,以及 ID 为 content
和名称 content
的隐藏输入,然后提交按钮。
此外,您还有 div,您可以在其中操作所有内容,ID 为 mail-body
。
然后,这段代码会在提交前对数据进行预处理,而在预处理的同时会将所有工作中的内容$('div#mail-body')
放入隐藏字段content
。
$(document).ready(function()
// Live means that if the html were loaded via AJAX, this trigger will also work.
$('form#mail').live('submit', function(e)
$(this).find('input[type="hidden"]#mail-body').val($('div#content').html());
);
);
然后,您在服务器端获得了 $('div#content')
中名为 $_POST['content']
或 $_GET['content']
的 post/get var 中的所有内容。
【讨论】:
【参考方案3】:如果我认为我的理解正确
$(document).ready(function()
var html = $('#divID').html();
$('#divID').hide();
//when you want to send it to php
$.ajax(function
type="POST",
url:"email.php",
data:"data="+html,
success:function(response)
$('#divID').show().html("email sent");
);
);
用$_POST['data']获取另一边的数据
【讨论】:
以上是关于获取整个 div 及其元素并使用 php 邮件功能发送的主要内容,如果未能解决你的问题,请参考以下文章
如何删除div中的div和所有元素? Javascript,html,css