I have a table that allows to add, edit and delete rows.
I want to send all rows to the email, but only send the last row.
Test with different codes but it didn't work.
HTML code for table.
encomenda.html
<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>
Script code for add, edit and delete rows.
javascript
<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>
PHP code to send data to email.
email.php
<?php
$item1 = $_POST['produto']['item1'];
$item2 = $_POST['referencia']['item2'];
$item3 = $_POST['quantidade']['item3'];
$item4 = $_POST['preco']['item4'];
$to = "[email protected]";
$remetente = "[email protected]";
$boundary = date("d-m-Y");
$headers.= "Form - ";
$headers.= "$boundary\n";
$corpo_mensagem = "
Product: $item1
Ref.: $item2
Qtd: $item3
Price: $item4 €
$mensagem = "--$boundary\n";
$mensagem.= "Content-Transfer-Encoding: 8bits\n";
$mensagem.= "Content-Type: multipart/form-data; boundary=something";
$mensagem.= "$corpo_mensagem\n";
}?>
Can someone help me?
Thank you