Ajuda com formulário dinâmico PHP e inserir valores no MySql
Olá pessoal, tudo bem ?
Eu estou com um problema a respeito com formulários dinâmicos, eu gostaria de cadastrar mais de uma informação na mesma tabela do MySql.
Por exemplo: Quando eu adiciono uma obra, eu cadastro ela junto com a proposta, porém quando a proposta precisa de mais de uma obra, eu adiciono outro campo, até aí tudo ok, porém ao registrar no mysql os dados, ele cadastra somente o último valor inserido. Eu gostaria de guardar mais de uma obra em uma proposta, como faço isso ?
Obrigado.
Seguem os códigos:
Aqui eu tem o formulário padrão com Bootstrap: E logo abaixo tem um botão para Adicionar uma obra. Podendo adicionar mais obras.
<?php
ob_start();
include_once("conexao.php");
include_once("phpcad/cad_propostas.php");
?>
<html>
<head>
<title>Proposta</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>
<div class="container theme-showcase" role="main">
<div class="page-header">
<h1>Proposta</h1>
</div>
<form class="form-horizontal" name="formfunc" method="POST">
<table class="table" id="dynamic_field">
<tr>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">
Nº Proposta:
</label>
<div class="col-sm-10">
<input required="" type="text" maxlength="11" class="form-control" name="nproposta" placeholder="Nº Proposta">
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">
Data Entrega:
</label>
<div class="col-sm-10">
<input required="" type="text" class="form-control" name="entrega" placeholder="Data de Entrega">
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">
Contratante:
</label>
<div class="col-sm-10">
<input required="" type="text" class="form-control" name="contratante" placeholder="Contratante">
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">
Cliente Final:
</label>
<div class="col-sm-10">
<input required="" type="text" class="form-control" name="clientefinal" placeholder="Cliente Final">
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">
Solicitante:
</label>
<div class="col-sm-10">
<input required="" type="text" class="form-control" name="solicitante" placeholder="Solicitante">
</div>
</div>
</tr>
</table>
<a href="administrativo.php"><button type='button' class='btn btn-warning'>Voltar</button></a>
<td><button type="button" name="add" id="add" class="btn btn-success">Adicionar Obra</button></td>
<input class="btn btn-success" type="submit" value="Cadastrar" name="btnPropostas">
</form>
</body>
</html>
<script>
$(document).ready(function(){
var i=1;
$('#add').click(function(){
i++;
$('#dynamic_field').append('<tr id="row'+i+'"><td><div class="form-group"><label for="inputEmail3" class="col-sm-2 control-label">Nº Obra: </label><div class="col-sm-10"><input required="" type="text" class="form-control" name="nobra" placeholder="Contratante"></div></div></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
i++;
$('#dynamic_field').append('<tr id="row'+i+'"><td><div class="form-group"><label for="inputEmail3" class="col-sm-2 control-label">Serviço: </label><div class="col-sm-10"><input required="" type="text" class="form-control" name="servico" placeholder="Serviço"></div></div></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
i++;
$('#dynamic_field').append('<tr id="row'+i+'"><td><div class="form-group"><label for="inputEmail3" class="col-sm-2 control-label">Ampliação: </label><div class="col-sm-10"><input required="" type="text" class="form-control" name="ampliacao" placeholder="Ampliação"></div></div></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
i++;
$('#dynamic_field').append('<tr id="row'+i+'"><td><div class="form-group"><label for="inputEmail3" class="col-sm-2 control-label">Local: </label><div class="col-sm-10"><input required="" type="text" class="form-control" name="local" placeholder="Local"></div></div></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
i++;
$('#dynamic_field').append('<tr id="row'+i+'"><td><div class="form-group"><label for="inputEmail3" class="col-sm-2 control-label">Descrição: </label><div class="col-sm-10"><input required="" type="text" class="form-control" name="descricao" placeholder="Descrição"></div></div></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
i++;
$('#dynamic_field').append('<tr id="row'+i+'"><td><div class="form-group"><label for="inputEmail3" class="col-sm-2 control-label">Informações Adicionais: </label><div class="col-sm-10"><input required="" type="text" class="form-control" name="infos_ad" placeholder="Informações Adicionais"></div></div></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
i++;
$('#dynamic_field').append('<tr id="row'+i+'"><td><div class="form-group"><label for="inputEmail3" class="col-sm-2 control-label">Data Início: </label><div class="col-sm-10"><input required="" type="text" class="form-control" name="inicio" placeholder="Data Início"></div></div></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
});
$(document).on('click', '.btn_remove', function(){
var button_id = $(this).attr("id");
$('#row'+button_id+'').remove();
});
$('#submit').click(function(){
$.ajax({
url:"name.php",
method:"POST",
data:$('#add_name').serialize(),
success:function(data)
{
alert(data);
$('#add_name')[0].reset();
}
});
});
});
</script>
Aqui é onde irá cadastrar os dados do formulário no banco de dados MySql com PHP.
<?php
ob_start();
include_once("conexao.php");
include_once("cad_propostas.php");
$btnPropostas = filter_input(INPUT_POST, 'btnPropostas', FILTER_SANITIZE_STRING);
if($btnPropostas){
include_once 'conexao.php';
$dados = filter_input_array(INPUT_POST, FILTER_DEFAULT);
$result_propostas = "INSERT INTO propostas (nproposta, entrega, contratante, clientefinal, solicitante, nobra, servico, ampliacao, local, descricao, infos_ad, inicio, created) VALUES (
'" .$dados['nproposta']. "',
'" .$dados['entrega']. "',
'" .$dados['contratante']. "',
'" .$dados['clientefinal']. "',
'" .$dados['solicitante']. "',
'" .$dados['nobra']. "',
'" .$dados['servico']. "',
'" .$dados['ampliacao']. "',
'" .$dados['local']. "',
'" .$dados['descricao']. "',
'" .$dados['infos_ad']. "',
'" .$dados['inicio']. "',
NOW()
)";
$resultado_client = mysqli_query($conn, $result_propostas);
if(mysqli_insert_id($conn)){
echo "
<META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/Intec/propostas.php'>
<script type=\"text/javascript\">
alert(\"Proposta cadastrada com Sucesso.\");
</script>
";
}else{
echo "
<META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/Intec/propostas.php'>
<script type=\"text/javascript\">
alert(\"Erro ao cadastrar Proposta.\");
</script>
";
}
}
?>
E aqui a conexão com o banco de dados:
<?php
$servidor = "localhost";
$usuario = "root";
$senha = "";
$dbname = "intec";
//Criar a conexao
$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
if(!$conn){
die("Falha na conexao: " . mysqli_connect_error());
}else{
echo "Conexao realizada com sucesso";
}
?>
Obrigado pela ajuda.Discussão (4)
Carregando comentários...