通过PHP邮件动态表格与表格

时间:2012-08-14 01:59:01

标签: php arrays forms email

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

I am using this link's answer to store the order form as an array in a 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 以便它们是一起在电子邮件中(不确定如何做到这一点)。由于订单上的项目数量会增加/减少,因此可以有任意数量的文本输入也很重要。

Here is an example of using foreach to get multiple input boxes,但我如何将我的Cookie中的数组与文本输入结合起来?

2 个答案:

答案 0 :(得分:0)

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

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

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


enter image description here

  

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

答案 1 :(得分: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 />';
}