Php 发送电子邮件阵列(foreach)

Php 发送电子邮件阵列(foreach),php,jquery,arrays,forms,email,Php,Jquery,Arrays,Forms,Email,我需要用PHP通过电子邮件发送一系列产品,但我在使用“foreach”时遇到了麻烦 这是我的代码: //Form <form action="" method="post"> <select name="product[]" class="product" > <option value="product1">product1</option> <option value="product2">produ

我需要用PHP通过电子邮件发送一系列产品,但我在使用“foreach”时遇到了麻烦

这是我的代码:

//Form
<form action="" method="post">
    <select name="product[]" class="product" >
      <option value="product1">product1</option>
      <option value="product2">product2</option>
      <option value="product3">product3</option>
    </select>
    <input type="text" name="boxes[]" value="Boxes:" class="boxesInput" size="20">
</form>
这是sendmail.php文件

//sendemail.php

$producto = $_POST['product'];
$boxes = $_POST['boxes'];

$body = "Order Details \n" ;
这就是问题所在,即:

foreach($producto as $id => $row )
{
 $body .= "Product: " .  $producto[$id]  . "\n";
 $body .= "Boxes: " .  $boxes[$id]  . "\n"; 
} 

$mailTo = 'my@email.com'; 
$subject = "Quotes Form";
$headers = 'From: <'.$mailTo.'> ' . "\r\n" . 'Reply-To: ' . $mailTo;
mail($mailTo, $subject, $body, $headers);
foreach($producto作为$id=>$row)
{
$body.=“产品:”..$producto[$id]。“\n”;
$body.=“盒子:”.$BOXS[$id]。“\n”;
} 
$mailTo=my@email.com'; 
$subject=“报价单”;
$headers='From:'。“\r\n”。”答复:"$梅托;
邮件($mailTo、$subject、$body、$headers);

正如Serj所指出的,为了让php理解表单数据,您需要序列化表单数据。可能更好用

$.post("sendmail.php", $("form").serialize());
发送表单数据。另一个问题是声明变量

$boxes = $_POST['boxes'];
但是foreach试图访问
$cajas[$id]
?如果将foreach循环更改为

foreach($producto as $id => $row )
{
 $body .= "Producto: " .  $producto[$id]  . "\n";
 $body .= "Cajas: " .  $boxes[$id]  . "\n"; 
} 

它应该会起作用。请注意,表单元素实际上适合生成数组,因为它们只接受单个值。

jQuery.val将创建一个JavaScript数组,该数组与PHP数组不兼容。您需要在JavaScript中序列化,并在PHP中取消序列化:

这就是这样一种功能:

你必须告诉我们出了什么问题。使用超级全球$\u帖子获取数据。不需要jQuery.Well,$.post()应该是一个ajax调用。。。为此,您需要jQuery/javascript。据我所知,他在sendmail.php中使用了$\u POST…:-|
.val()
返回的是字符串,而不是数组。Serj是错误的-1.在你责骂别人读文件之前,确保你知道。只选择多个返回一个数组。这正是他在本例中试图做的!!!请看name=“product[]”这两个括号创建了一个数组!是的,他还需要在他的HTML中添加一个多属性。。。为了让他的用户能够选择多个,但括号会创建一个数组,同样,请在发布垃圾之前查找它!可以没有必要大喊大叫。
foreach($producto as $id => $row )
{
 $body .= "Producto: " .  $producto[$id]  . "\n";
 $body .= "Cajas: " .  $boxes[$id]  . "\n"; 
}