1 回答
TA贡献1735条经验 获得超5个赞
您目前正在循环的每次迭代中覆盖相同的变量,这就是为什么它们只包含最后一个条目的原因。
您应该改为附加值,执行以下操作:
$tableContent = json_decode($_POST['tableContent']);
// Define a variable to store the items in
$items = '';
// Let's add a total sum as well
$total = 0;
// Let's also use different variable names here
foreach ($tableContent as $item) {
// Append to the variable (notice the . before the =)
$items .= 'Item: ' . $item->name . "\n";
$items .= 'Quantity: ' . $item->inCart . "\n";
$items .= 'Price: ' . $item->price . "\n\n";
// Add the price to the total (I'm assuming that the price is an integer)
$total += $tableContent->price;
}
现在在输出电子邮件正文时,我们在这些变量中拥有所有项目和总数:
$txt = "New registration \n" . $items . "Sum total: " . $total . "\n\n\n CUSTOMER DERAILS\n\n Name:".$contact."\n Reg No:".$reg;
如您所见,我稍微更改了邮件的布局,因为购物车似乎可以包含多个项目,而您的电子邮件正文写得好像只能包含一个。
关于这种方法的警告
您不应该在这样的 POST 请求中从客户端获取购物车值,例如名称和价格。客户应该只发送商品 ID 和数量,然后您将从后端的数据库或类似数据库中获取名称和价格。否则,任何人都可以在发布之前将价格修改为他们想要的任何值。永远不要相信用户数据。
添加回答
举报