0

我有一个需要发送到电子邮件地址的订单(表格)。我了解如何在 PHP 中发送电子邮件的基础知识,但不了解这种情况的具体情况(获取 cookie 数组 + 表单元素的信息并将它们放在 PHP 邮件程序的正文中)

我正在使用此链接的答案将订单作为数组存储在 cookie 中

然后我使用这个 javascript 在#catalog div 中创建 HTML 表格。重要的部分是制作表格的 for 循环。使用 list.items(); 可以将“cookie 数组”列为数组

function loopArrayMail() { 
if ($.cookie('productWishlist') == null) {
    html = ""; $('#catalog').html(html);
} else {
    var cookie = $.cookie("productWishlist"); var items = cookie ? cookie.split(/,/) : new Array();
    var html = "<table><tr><th>Product</th><th># to order</th></tr>";
    for(var i=0;i<items.length;i++){ html += "<tr><td width='450'>"+items[i]+"</td><td><input type='text' name='numberOfItems' /></td></tr>"; }
    html += "</table>"; $('#catalog').html(html);
}}

订单表格中每个项目旁边都有一个文本输入,供用户输入他们想要的项目数量。 如何在 PHP 中将表格内容和每个表单输入作为电子邮件发送?

我的猜测是我必须使用 cookie 数组,并且每次迭代都有一个包含所有文本输入的数组并使用 foreach以便它们在电子邮件中一起出现(不确定如何准确地执行此操作)。同样重要的是,可以有任意数量的文本输入,因为订单表格上的项目数量会增加/减少。

这是使用 foreach 获取多个输入框的示例,但是如何将我的 cookie 中的数组与文本输入结合起来?

4

2 回答 2

0

最好只在电子邮件中发送纯 HTML 而不使用任何 javascript,因为电子邮件程序中没有任何 javascript,也没有任何 cookie。

不知道谁告诉你可以使用它,但电子邮件程序不是浏览器。

但是,如果您通过电子邮件发送链接,则任何用户都可以在功能齐全的互联网浏览器中打开它,因此这可能就是您要查找的内容。


在此处输入图像描述

Netscape Communicator 4 支持电子邮件中的 javascript,但不知道 cookie。

于 2012-08-14T07:38:40.827 回答
0

首先,当您在 loopArrayMail() 函数中创建表单元素时,您必须为表单元素命名,后跟 [] 表示它是一个数组。

for(var i=0;i<items.length;i++){
  html += "<tr><td width='450'>"+items[i]+"</td><td><input type='text' name='ordernum[]' size='8' /></td></tr>";
}

由于 cookie 是一个字符串,因此您必须首先根据分隔符(即逗号)分解字符串。将两个数组放入变量中。然后使用 for 循环遍历所有数组。

function explode_trim($str, $delimiter = ',') {
  if ( is_string($delimiter) ) {
    $str = trim(preg_replace('|\\s*(?:' . preg_quote($delimiter) . ')\\s*|', $delimiter, $str));
    return explode($delimiter, $str);
  } 
return $str; }

$orderCookie = explode_trim($_COOKIE['productWishlist']);
$orderNum = $_POST['ordernum'];

for ( $i = 0; $i < count($orderCookie); $i++) {
  echo $orderCookie[$i] . ' = ' . $orderNum[$i] . '<br />';
}
于 2012-08-16T19:10:48.427 回答