可以为邮件添加刚刚克隆的输入字段(最后一个)


just cloned input field (last) can be added for mail

我制作了一个表单,用户可以使用JQuery克隆/复制输入字段以添加更多信息。问题是在发送的邮件中只有最后一个克隆输入可用。

我尝试用PHP这样做:

$product = "";
$product.= $_POST['product'] .= "'t amount".$trenner.$_POST['amount'] .= "'t price".$trenner.$_POST['price']."€";

但是行不通。

Jquery:

var products = $(".products").clone();
var clonedRow = products.clone().insertAfter(".products:last").find(":input").val(this.value ).end();
//ajax
console.log(products,clonedRow,$('[name="Product"]', clonedRow))

首先,您的输入名称应该以[]结尾,因此它可以有多个值。

<input type="text" name="amount[]" placeholder="amount" required />

在PHP中,您将像往常一样得到:

$amounts = $_POST['amount']; // array

,但现在它是array,所以你不能像连接常规值一样连接它。例如,您可以用逗号,将值连接在一起。

这可以通过内爆来实现。

$amounts = implode(', ', $_POST['amount']);
$product.= $_POST['product'] .= "'t amount".$trenner.$amounts .= "'t price".$trenner.$_POST['price']."€";

这里的要点是必须使用数组值并从中生成一些字符串。

如果你想把它们加起来,你可以使用array_sum.

$sum = array_sum($_POST['amount']);