Boa tarde a todos! Estou sofrendo para conseguir fazer um array e gravar no banco... permitam-me explicar-me melhor: Tenho um formulário para criação de orçamentos, e nele existe uma área onde o usuário pode adicionar itens ao orçamento dinamicamente. Esta adição está sendo feita por javascript, funcionando 100%, e cada item do orçamento é composto de vários campos: descrição, condição, valor, etc... Como esses campos são inseridos dinamicamente e podem variar em quantidade, acredito que não haja outra forma de guardá-los no banco senão em forma de arrays. formulário: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.add').click(function(){
var id = parseInt($('#tabelaItens > tbody tr:last input:first').val()) + parseInt(1);
$('#tabelaItens > tbody').append('<tr>\n <td><input type="text" class="text-input" name="item[]" id="item[]" value="'+id+'" size="4"></td>\n <td><input type="text" class="text-input" id="descricao[]" size="50"></td>\n <td><input type="text" class="text-input" id="condicao[]" size="8"></td>\n <td><input type="text" class="text-input" id="valor[]" size="8"></td>\n <td><input type="text" class="text-input" id="desconto[]" size="8"></td>\n <td><input type="text" class="text-input" id="total[]" size="8"></td>\n <td> </td>\n</tr>\n');
return false;
});
});
</script>
</head>
<body>
<form action="teste-add-2.php" method="post" enctype="multipart/form-data" id="cadastro">
<table width="100%" id="tabelaItens">
<thead>
<tr>
<td width="40">Item</td>
<td>Descrição</td>
<td width="75">Cond. Pgto.</td>
<td width="75">Vlr. Unit.</td>
<td width="75">% Desc.</td>
<td width="100">Total</td>
<td width="50">Editar</td>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" class="text-input" name="itens[item][]" value="1" size="4"></td>
<td><input type="text" class="text-input" name="itens[descricao][]" size="50"></td>
<td><input type="text" class="text-input" name="itens[condicao][]" size="8"></td>
<td><input type="text" class="text-input" name="itens[valor][]" size="8"></td>
<td><input type="text" class="text-input" name="itens[desconto][]" size="8"></td>
<td><input type="text" class="text-input" name="itens[total][]" size="8"></td>
<td> </td>
</tr>
</tbody>
</table>
<p><input class="button" value="Enviar" type="submit" tabindex="320"></p>
<p><a href="#" class="add">add</a></p>
</form>
</body>
</html>
Quando o usuário clica no botão add, é adicionada mais uma linha no final de tabela com os mesmos campos mostrados acima.
Até aí tudo bem, o problema surge quando tento tratar esse dados na página que os recebe, colocando eles em arrays pra salvar no banco de dados... acaba aparecendo somente o primeiro item inserido...
página add-2.php:
<?php
$valores = $_POST['itens'];
foreach($valores[item] as $key=>$value){
echo "Item: ".$value."<br/>";
echo "Descrição: ".$valores[descricao][$key]."<br/>";
echo "Condição: ".$valores[condicao][$key]."<br/>";
echo "Valor: ".$valores[valor][$key]."<br/>";
echo "Desconto: ".$valores[desconto][$key]."<br/>";
echo "Total: ".$valores[total][$key]."<br/>";
}
?> Gostaria de saber se alguém conhece a forma correta de receber esses dados, para que seja possível gravar no banco... Desde já agradeço a atenção de todos! Muito obrigado!