【问题标题】:How to send mail in table format with data如何以表格格式发送带有数据的邮件
【发布时间】:2023-04-09 10:21:01
【问题描述】:

我的 PHP 文件中有一个表格,看起来像这样。

<div class="table-main" style="width:600px;" id="data-table-grid">
<table class="font order">
<tr>
<td>Item</td>
<td>Price</td>
<td>Quantity</td>
<td>Total</td>
</tr>
<tr>
    <td colspan="4">
        <span class="tdlist head">Party packs</span>
    </td>
</tr>
<tr>
    <td>
        <span class="tdlist">Tango Pack</span>
    </td>
    <td>
        $<span class="price">60</span>
    </td>
    <td>
        <input type='text' class="item_input text-box" maxlength=9 name='item1' value='0' id='item2' style="width:60px;" />
    </td>
    <td>
        <span></span>
    </td>
</tr>
<tr>
    <td>
        <span class="tdlist">Gala Pack </span>
    </td>
    <td>
        $<span class="price">100</span>
    </td>
    <td>
        <input type='text' class="item_input text-box" maxlength=9 name='item2' value='0' id='item2' style="width:60px;" />
    </td>
    <td>
        <span></span>
    </td>
</tr>

我想发送这个表格输出,就像在邮件中一样,并带有填充的数据。我试过这个:

  var msg = $("#data-table-grid").prop('outerHTML');

我发送邮件并获得了表格格式,但我得到了一张空表格。我想收到带有填充值的邮件。

谁能帮帮我?

【问题讨论】:

  • 如果你只想发送 html 数据而不是使用 var msg = $(".table-main").html();
  • @ManojGarwa 会发送带有其值的表格吗?
  • @ManojGarwa 我已经尝试过这种方式,但我没有得到文本框值
  • 你不想发送带有 的标签,对吗?在这种情况下,您可以调整一些 jquery 的东西。点击按钮(当您点击提交邮件时)获取每种输入类型的值并将该值设置为其父 TD 的文本。之后获得特定 DIV 的值,正如我在上面的第一条评论中所写,但有一些 setTimeout。试试这个,可能对你有用

标签: javascript php jquery html-table html-email


【解决方案1】:

首先,您的 table 和 div 结束标记丢失了。我希望在您的原始代码中拥有它们

另外,#data-table-grid 是您的 div 而不是您的表格,因此获取外部 html 也会获得 div,而您不需要。

你可以的

 var msg = $("#data-table-grid").html():

这将采用 div 的 innerHTML,其中包括带有值的表。 但是,如果您仍然需要 div,请参考其父级的内部 html,如下所示:

 var msg = $("#data-table-grid").parent().html():

【讨论】:

    【解决方案2】:

    如果你有这个 php 文件在目录中,而不是使用

    $str=file_get_contents(文件路径);

    现在,如果您想更改此字符串 tjan 中的某个变量,您也可以替换它。

    例如,我们首先在要包含的数据文件中定义一些特殊语法,例如~~full_name~~。

    现在你可以在邮件发送页面中动态替换它,例如

    $str = Str_replace("~~full_name~~", $fullName, $str);

    现在您可以将上面的变量 $str 用作电子邮件的正文部分。

    还有一件更重要的事情要记住,在您的邮件集 content-type="text/html" 的标题中

    【讨论】:

      【解决方案3】:

      将整个内容变成一个字符串并将其添加到您的邮件正文中。把“双引号”改成“单引号”就可以了,只是有点费时间。

      $mystring = "<Everything in here>";
      

      【讨论】:

      • 我认为 Manoj Garwa Answer 会让您获得更好的成功。但我无法撞到它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 2023-03-04
      • 2014-02-03
      • 1970-01-01
      相关资源
      最近更新 更多