如何解决数据数组未通过电子邮件发送
我有一个允许添加,编辑和删除行的表。
我想将所有行发送到电子邮件,但只发送最后一行。
使用不同的代码进行测试,但这没有用。
表的HTML代码。
encomenda.html
server {
listen 80;
listen [::]:80;
server_name mydomain.com;
return 302 https://$server_name$request_uri;
}
server {
listen 433 ssl http2;
listen [::]:433 ssl http2;
ssl on;
ssl_certificate /etc/ssl/certs/bons.pem;
ssl_certificate_key /etc/ssl/private/bons.key;
server_name mydomain.com;
location / {
proxy_pass http://<myIP>:3003;
}
}
用于添加,编辑和删除行的脚本代码。
javascript
<table class="table table-bordered">
<thead>
<tr>
<th>Produto</th>
<th>Referência</th>
<th>Quantidade</th>
<th>Preço (€)</th>
<th>Ações</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" class="form-control" for="produto" name="produto[item1]" id="produto" placeholder="Exemplo*" ></td>
<td><input type="text" class="form-control" for="referencia" name="referencia[item2]" id="referencia" placeholder="#00000"></td>
<td><input type="number" class="form-control" for="quantidade" name="quantidade[item3]" id="quantidade" placeholder="10*" ></td>
<td><input type="number" class="form-control" for="preco" name="preco[item4]" id="preco" placeholder="10.0004"></td>
<td>
<a class="add" title="Add" data-toggle="tooltip"><i class="material-icons"></i></a>
<a class="edit" title="Edit" data-toggle="tooltip"><i class="material-icons"></i></a>
<a class="delete" title="Delete" data-toggle="tooltip"><i class="material-icons"></i></a>
</td>
</tr>
</tbody>
</table>
用于将数据发送到电子邮件的PHP代码。
email.php
<script>
$(document).ready(function () {
$('[data-toggle="tooltip"]').tooltip();
var actions = $("table td:last-child").html();
$(".add-new").click(function () {
$(this).attr("disabled","disabled");
var index = $("table tbody tr:last-child").index();
var row = '<tr>' +
'<td><input type="text" class="form-control" for="produto" name="produto[item1]" id="produto" placeholder="Exemplo*" ></td>' +
'<td><input type="text" class="form-control" for="referencia" name="referencia[item2]" id="referencia" placeholder="#00000"></td>' +
'<td><input type="number" class="form-control" for="quantidade" name="quantidade[item3]" id="quantidade" placeholder="10*" ></td>' +
'<td><input type="number" class="form-control" for="preco" name="preco[item4]" id="preco" placeholder="10.0004"></td>' +
'<td>' + actions + '</td>' +
'</tr>';
$("table").append(row);
$("table tbody tr").eq(index + 1).find(".add,.edit").toggle();
$('[data-toggle="tooltip"]').tooltip();
});
$(document).on("click",".add",function () {
var empty = false;
var input = $(this).parents("tr").find('input[type="number"]');
var input = $(this).parents("tr").find('input[type="text"]');
input.each(function () {
if (!$(this).val()) {
$(this).addClass("error");
empty = true;
} else {
$(this).removeClass("error");
}
});
$(this).parents("tr").find(".error").first().focus();
if (!empty) {
$(this).parents("tr").find(".add,.edit").toggle();
$(".add-new").removeAttr("disabled");
}
});
$(document).on("click",".edit",function () {
$(this).parents("tr").find("td:not(:last-child)").each(function () {
$(this).html('<input type="text" class="form-control" value="' + $(this).text() + '">');
});
$(this).parents("tr").find(".add,.edit").toggle();
$(".add-new").attr("disabled","disabled");
});
$(document).on("click",".delete",function () {
$(this).parents("tr").remove();
$(".add-new").removeAttr("disabled");
});
});
</script>
有人可以帮我吗?
谢谢
解决方法
您在表的每一行中为每个输入使用相同的name
。浏览器只能为每个名称传递一个值。
这样写输入名称:
produto[]
(因此括号中没有“ item1”,“ item2”等),因此它形成了没有特定索引的数组。
然后在PHP中,您必须遍历它们以获取每个单独的值
例如作为一个非常简单的示例:
foreach ($_POST['produto'] as $item)
{
echo $item;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。