获取整个 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

Jquery如何选取元素及其所有子元素?

如何将整个 div 元素向上移动 x 个像素?

尝试在 C# 中使用正则表达式获取整个 <div>

DIV+CSS效果求助,上下两个DIV,要求布满整个浏览器,且整个浏览器不能出现滚动条

jQuery,获取整个元素的 html [重复]