Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
olá, estou com um formulario feito com colunas fixas e uma parte dinamica(um botao adiciona um conjunto de colunas) , como faria para enviar os dados dos campos dinamicos no banco de dados já que eles serão variais,
$tipoendereco = $_POST['data']['ClientesEndereco'][0]['nome_tipo'];
$cep = $_POST['data']['ClientesEndereco'][0]['cep'];
$logradouro = $_POST['data']['ClientesEndereco'][0]['logradouro'];
$numeroendereco = $_POST['data']['ClientesEndereco'][0]['numero'];
$complemento = $_POST['data']['ClientesEndereco'][0]['complemento'];
$bairro = $_POST['data']['ClientesEndereco'][0]['bairro'];
$codcidade = $_POST['data']['ClientesEndereco'][0]['codigo_cidade'];
$nomecidade = $_POST['data']['ClientesEndereco'][0]['nome_cidade'];
$estadocidade = $_POST['data']['ClientesEndereco'][0]['estado'];
existe um botao que duplica essa parte do formulaio quantas vezes a pessoa quiser .... porem só fica registrado os dados preenchidos no primeiro formulario, o segundo ja vem assim:
$cep = $_POST['data']['ClientesEndereco'][1]['cep'];
$logradouro = $_POST['data']['ClientesEndereco'][1]['logradouro'];
$numeroendereco = $_POST['data']['ClientesEndereco'][1]['numero'];
$complemento = $_POST['data']['ClientesEndereco'][1]['complemento'];
$bairro = $_POST['data']['ClientesEndereco'][1]['bairro'];
$codcidade = $_POST['data']['ClientesEndereco'][1]['codigo_cidade'];
$nomecidade = $_POST['data']['ClientesEndereco'][1]['nome_cidade'];
$estadocidade = $_POST['data']['ClientesEndereco'][1]['estado'];
como faço para gravar todos os formulario para pegar de acordo com a quantidade desejada por pessoa ?
agradeço desde já>
23 minutos atrás, EdCesar disse:
/profile/230713-romarioseg/?do=hovercard" data-mentionid="230713" href="/profile/230713-romarioseg/" rel="">@romario@seg, beleza!
Se entendi o problema, isso deve resolver:
if (isset($_POST['data']['ClientesEndereco'][0])) {
$values = '';
$fields = "(" . implode(",", array_keys($_POST['data']['ClientesEndereco'][0])) . ")";
foreach ($_POST['data']['ClientesEndereco'] as $endereco) {
$values .= "('" .implode("','", $endereco) . "'),";
}
$values = substr($values, 0, -1);
$sql = 'INSERT INTO SUATABELA ' . $fields . ' VALUES ' . $values;
/*
Agora basta pegar essa variavel $sql e dar o insert com o seu PDO, mysqli ou o que estiver usando
*/
}
na pagina que recebe não deu nenhum erro, mas como faço para imprimir na tela os dados preenchidos para verificar os dados?>
1 hora atrás, romario@seg disse:
na pagina que recebe não deu nenhum erro, mas como faço para imprimir na tela os dados preenchidos para verificar os dados?
Normal, só dar um:
echo $sql;
Após:
$sql = 'INSERT INTO SUATABELA ' . $fields . ' VALUES ' . $values;
Não se esqueça de troca **SUATABELA** pelo nome correto da sua tabela>
1 hora atrás, EdCesar disse:
Normal, só dar um:
echo $sql;
Após:
$sql = 'INSERT INTO SUATABELA ' . $fields . ' VALUES ' . $values;
Não se esqueça de troca **SUATABELA** pelo nome correto da sua tabela
INSERT INTO cliente (nome_tipo,cep,logradouro,numero,complemento,bairro,pais,cidade_id,codigo_cidade,nome_cidade,estado) VALUES ('','','','','','','','','','','')
esses sao os names que estão no formulario se observar no primeiro exmplo
"nome_tipo,cep,logradouro,numero,complemento,bairro,pais,cidade_id,codigo_cidade,nome_cidade,estado" e os values vem em branco.
foi isso que apareceu quando atualizei a pagina, desculpa sou leigo, mas agradeço a grande ajuda!>
1 hora atrás, romario@seg disse:
foi isso que apareceu quando atualizei a pagina, desculpa sou leigo, mas agradeço a grande ajuda!
Ótimo, esta funcionando, aparentemente você só não preencheu os campos do formulário.
Se mais duvidas aparecer, pesquise por enviar dados do formulário para o PHP e salvar no banco de dados, caso tenha dificuldades, poste o seu código para auxiliarmos melhor.
>
1 hora atrás, EdCesar disse:
Ótimo, esta funcionando, aparentemente você só não preencheu os campos do formulário.
Se mais duvidas aparecer, pesquise por enviar dados do formulário para o PHP e salvar no banco de dados, caso tenha dificuldades, poste o seu código para auxiliarmos melhor.
não estou conseguindo inserir no banco de dados, criei uma tabela para cada resultado, mas onde eu faço o endereçamento para aparecer nas colunas?
eu costumo fazer desse jeito quando tem a tabela fixa, mas não estou conseguindo nesse jeito que me passou? como faço ?
$nome = $_POST['data ']['ClientesEnderecos'][0]['nome'];
$tipo = $_POST['data ']['ClientesEnderecos'][0]['cep'];
$sql = INSERT INTO endereco_cliente (`nome_tipo`,`cep`) VALUES ($nome, $tipo);>
Em 2017-5-20 at 20:01, EdCesar disse:
Ótimo, esta funcionando, aparentemente você só não preencheu os campos do formulário.
Se mais duvidas aparecer, pesquise por enviar dados do formulário para o PHP e salvar no banco de dados, caso tenha dificuldades, poste o seu código para auxiliarmos melhor.
não esta indo para a minha tabela do banco de dados , estou com o projeto parado, pode me ajudar ?
tem algum email ?
Coloque o seu código e os erros que estão dando.
Informe também o que você já tentou fazer para resolver o problema e não deu certo.
>
6 minutos atrás, EdCesar disse:
Coloque o seu código e os erros que estão dando.
Informe também o que você já tentou fazer para resolver o problema e não deu certo.
essa é a pagina que vem do formulario para enviar para o banco de dados ...
<?php
include 'conexao.php';
if (isset($_POST['data']['ClientesEndereco'][0]))
if (isset($_POST['data']['ClientesContato'][0])) {
$values = '';
$fields = "(" . implode(",", array_keys($_POST['data']['ClientesEndereco'][0])) . ")";
$value = '';
$field = "(" . implode(",", array_keys($_POST['data']['ClientesContato'][0])) . ")";
foreach ($_POST['data']['ClientesEndereco'] as $endereco) {
$values .= "('" .implode("','", $endereco) . "'),";
}
foreach ($_POST['data']['ClientesContato'] as $contato) {
$value .= "('" .implode("','", $contato) . "'),";
}
$values = substr($values, 0, -1);
$sql = 'INSERT INTO cliente_endereco ' . $fields . ' VALUES ' . $values;
$value = substr($value, 0, -1);
$sq = 'INSERT INTO cliente_contato ' . $field. ' VALUES ' .$value;
$quer = mysqli_query($cnx,$sql);
var_dump($quer);
echo $sql ;
}
//header ("Location:/1-login/home/clientes.php");
?>
no meu banco de dados criei duas tabelas, uma com nome cliente_endereco e outra com contato_endereco
na tabela cliente endereco criei as colunas
nome_tipo,cep,logradouro,numero,complemento,bairro,pais,cidade_id,codigo_cidade,nome_cidade,estado.
mas não esta enviando, esse é o resultado que aparece na pagina retorno .
INSERT INTO cliente_endereco (nome_tipo,cep,logradouro,numero,complemento,bairro,pais,cidade_id,codigo_cidade,nome_cidade,estado) VALUES ('','','','','','','','','','','')
>
Em 20/05/2017 at 20:01, EdCesar disse:
Ótimo, esta funcionando, aparentemente você só não preencheu os campos do formulário.
Se mais duvidas aparecer, pesquise por enviar dados do formulário para o PHP e salvar no banco de dados, caso tenha dificuldades, poste o seu código para auxiliarmos melhor.
A impressão que da, é que você esta tentando obter os dados sem submeter o formulário, se não existem dados em **$_POST['data']['ClientesEndereco']** ficara em branco mesmo, então reitero a sugestão acima que já tinha lhe dado.
Que testes você esta fazendo, já deu um var_dump em $_POST['data']['ClientesEndereco'] ?>
5 minutos atrás, EdCesar disse:
A impressão que da, é que você esta tentando obter os dados sem submeter o formulário, se não existem dados em **$_POST['data']['ClientesEndereco']** ficara em branco mesmo, então reitero a sugestão acima que já tinha lhe dado.
Que testes você esta fazendo, já deu um var_dump em $_POST['data']['ClientesEndereco'] ?
testei, porem a inserção que conheço e que estou fazendo para meu formulario fixo esta dando certo, esta enviando para o banco de dados, esse é os dados do formulario fixo:
<?php
include 'conexao.php';
$tipo = $_POST['data']['Cliente']['tipo_pessoa'];
$situacao = $_POST['data']['Cliente']['ativo'];
$nome = $_POST['data']['Cliente']['nome'];
$email = $_POST['data']['Cliente']['email'];
$cpf = $_POST ['data']['Cliente']['pf_cpf'];
$rg = $_POST ['data']['Cliente']['pf_rg'];
$dtnascimento = $_POST ['data']['Cliente']['pf_data_nascimento'];
$cnpj = $_POST['data']['Cliente']['pj_cnpj'];
$rzsocial = $_POST ['data']['Cliente']['pj_razao_social'];
$ie = $_POST ['data']['Cliente']['pj_inscricao_estadual'];
$ieisent = $_POST['data']['Cliente']['pj_isento_ins_est'];
$pjcontribuinte = $_POST['data']['Cliente']['pj_tipo_contribuinte'];
$imunicipal = $_POST['data']['Cliente']['pj_inscricao_municipal'];
$isuframa = $_POST['data']['Cliente']['pj_inscricao_suframa'];
$respon = $_POST['data']['Cliente']['pj_responsavel'];
$telcomercial = $_POST['data']['Cliente']['telefone'];
$telcelular = $_POST['data']['Cliente']['celular'];
$fax =$_POST['data']['Cliente']['fax'];
$site = $_POST['data']['Cliente']['site'];
$sql = "INSERT INTO `cliente`( `tipocliente`, `situacao`, `nome`, `email`, `cpf`, `rg`, `nascimento`, `cnpj`, `razao`, `ie`, `ieisento`,`contribuinte`, `inscmunicipal`, `inscsuframa`, `responsavel`, `telefone`, `celular`, `fax`, `site` )
VALUES ('$tipo', '$situacao', '$nome','$email','$cpf','$rg','$dtnascimento','$cnpj','$rzsocial','$ie','$ieisent','$pjcontribuinte','$imunicipal','$isuframa','$respon','$telcomercial','$telcelular','fax','$site');";
$qur = mysqli_query($cnx, $sql);
var_dump($qur);
a inserção desta forma esta dando certo, mais para a parte do formulario dinamico que é o endereço e o contato que pode ser adicionado mais campos dinamicamente não está ...>
14 minutos atrás, EdCesar disse:
A impressão que da, é que você esta tentando obter os dados sem submeter o formulário, se não existem dados em **$_POST['data']['ClientesEndereco']** ficara em branco mesmo, então reitero a sugestão acima que já tinha lhe dado.
Que testes você esta fazendo, já deu um var_dump em $_POST['data']['ClientesEndereco'] ?
estou preenchendo o formulario, mas não todo porque da trabalho ficar preenchendo toda hora, preencho 1 ou dois campos até dar certo.
/profile/230713-romarioseg/?do=hovercard" data-mentionid="230713" href="/profile/230713-romarioseg/" rel="">@romario@seg, beleza!
Se entendi o problema, isso deve resolver: