Boa noite, pessoal. Bom sou novo nessa area de programação, fiz um formulario dinamico, mas quando gravo ele não leva tudo para banco. Abaixo o codigo. formulario.php <head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>CADASTRO</title>
<link rel="stylesheet" href="js/jquery-ui-1.8.16.custom.css" type="text/css" media="all" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/aplicacao.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script>
<script type="text/javascript" src="js/jquery.maskedinput-1.1.4.pack.js">
</script>
<script>
$(function() {
//Aplicando a interface do datepicker
$( ".datepicker" ).datepicker({
showOn: "button",
buttonImage: "js/calendario.gif",
buttonImageOnly: true
});
// CONFIGURAÇÃO DO DATEPICKER DO JQUERYUI PARA PT-BR
$.datepicker.setDefaults({dateFormat: 'dd/mm/yy',
dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado','Domingo'],
dayNamesMin: ['D','S','T','Q','Q','S','S','D'],
dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb','Dom'],
monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro', 'Outubro','Novembro','Dezembro'],
monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set', 'Out','Nov','Dez'],
nextText: 'Próximo',
prevText: 'Anterior'
});
//Aplicando uma máscara o campo de data
$(".datepicker").mask("99/99/9999");
});
</script>
</head>
<body>
<div style="width:500px; margin:auto;">
<form id="texte" action="gravar.php" method="post">
<fieldset>
<legend>CADASTRO</legend>
<p>
<label for="fornecedor">FORNECEDOR</label>:
<input id="fornecedor" type="text" name="fornecedor" />
</p>
<p>
<label for="usuario">USUARIO</label>
:
<input id="usuario" type="text" name="usuario" />
</p>
<p>
<label for="data">DATA</label>
:
<input type="text" id="data" name="data" size="30px" maxlength="10" class="datepicker" value="08/02/2012" />
</p>
<p>
<label for="total">TOTAL:</label>
<input id="total" type="text" name="total" />
</p>
<p>
<label for="texto">TEXTO:</label>
<input id="texto" type="text" name="texto" />
</p>
<p>
<label for="cc">CENTRO DE CUSTO:</label>
<select name="cc" id="cc">
<option>Selecione...</option>
<option value="AC">AC</option>
<option value="AL">AL</option>
<option value="AP">AP</option>
<option value="AM">AM</option>
<option value="BA">BA</option>
<option value="CE">CE</option>
<option value="ES">ES</option>
<option value="DF">DF</option>
<option value="MA">MA</option>
<option value="MT">MT</option>
<option value="MS">MS</option>
<option value="MG">MG</option>
<option value="PA">PA</option>
<option value="PB">PB</option>
<option value="PR">PR</option>
<option value="PE">PE</option>
<option value="PI">PI</option>
<option value="RJ">RJ</option>
<option value="RN">RN</option>
<option value="RS">RS</option>
<option value="RO">RO</option>
<option value="RR">RR</option>
<option value="SC">SC</option>
<option value="SP">SP</option>
<option value="SE">SE</option>
<option value="TO">TO</option>
</select>
</p>
</fieldset>
<fieldset>
<legend>ITENS</legend>
<div class="itens">
<p class="campoItens">
<label for="doc">DOC:</label> <input type="text" name="item[]" />
<br>
<label for="texto">ITEM:</label>
<input type="text" name="item[]" />
<br>
<label for="texto">CONTA:</label>
<input type="text" name="item[]" />
<br>
<label for="texto">VALOR:</label>
<input type="text" name="item[]" />
<br>
<label for="texto">CC:</label>
<input type="text" name="item[]" />
<br>
<label for="texto">DESCRIÇÃO:</label>
<input type="text" name="item[]" />
<br>
<a href="#" class="removerCampo">Remover Campo</a>
</p>
</div>
<p>
<a href="#" class="adicionarCampo">Adicionar mais Itens</a>
</p>
<input name="cadastrar" type="submit" id="gravar" value="Gravar" />
<input name="limpar" type="reset" id="limpar" value="Limpar Campos preenchidos!" />
<p> </fieldset>
</form>
</div>
</body>
</html>
gravar.php
<?php
mysql_connect('localhost','root',''); // Realizo a conexão com o banco de dados
mysql_select_db('teste'); // Seleciono o banco de dados
/* Crio uma função ao qual irá esperar o parâmetro tabela */
function gravar($tabela) {
/* Recebo todos os campos do formulário e elimino o último, pois normalmente em um formulário o último input é o submit e gravo na variável $val */
$val = end($_POST);
/* Procuro pela posição em que o elemento está para excluí-lo da matriz de dados */
$pos = array_search($val, $_POST);
/* Removo o item submit da matriz de dados */
unset($_POST[$pos]);
/* Através do foreach eu percorro todos os campos e todos os conteúdos desses campos */
foreach ($_POST as $campo => $val) {
/* Separo os campos e gravo em uma variável( na verdade uma nova matriz de dados) chamado de $campos[] */
$campos[] = $campo;
/* Faço o mesmo com o conteúdo, porém utilizo as funções: mysql_real_espace_string para evitar que seja realizado uma tentativa de burlar o banco de dados utilizando injeção de SQL e strip_tags eliminar as tags HTML */
$conteudo[] = mysql_real_escape_string(strip_tags($val));
}
/* Crio a SQL que irá ser inserida no banco de dados */
$insert = "INSERT INTO $tabela(".implode(',',$campos).") VALUES('".str_replace(",","','",implode(',',$conteudo))."')";
/* Faço a inserção no banco de dados e caso haja algum erro na inserção, será retornado através da função mysql_error() */
mysql_query($insert) or die ('ERRO: '.mysql_error());
/* Caso não haja erros exibi a mensagem de sucesso. */
echo 'Dados gravados com sucesso';
}
/* Chamo a função gravar passando o parâmetro que é o nome da tabela */
echo gravar('cadastro');
?>
SQL
CREATE TABLE cadastro (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, usuario VARCHAR(60) NOT NULL, dia VARCHAR(60) NOT NULL, total VARCHAR(100) NOT NULL, texto VARCHAR(60), cc VARCHAR(60), item[] VARCHAR(60), texto VARCHAR(60) NOT NULL) ENGINE = InnoDB;; alguém poderia me ajudar?