Hadjacks 0 Denunciar post Postado Abril 18, 2011 Segue em anexo, meu código, tá com um pequeno problema não estou conseguindo cadastrar os campos input hidden com o foreach... o valor enviado para o banco é zero, os outros campos são preenchidos normalmente. <html> <head> <link rel="stylesheet" href="estilo.css" media="all" type="text/css" /> <title> Incluir Familiar </title> </head> <?php include "principal.php"; ?> <table class="i_familiar" border="0"> <form method="POST" action="" id="i_familiar" class="i_familiar" > <tr> <td> <label>Inscrição da Família: <input type="text" name="nr_fam" size="6"></label> <input type="submit" name="buscar" value="buscar" size="6"> </td> </tr> <?php $nr_fam=$_POST['nr_fam']; include "conexao.php"; if (isset($_POST["buscar"])) { $sql_situacao = "SELECT * FROM cadastro WHERE nr_fam= '".$nr_fam."'"; $rs = mysql_query($sql_situacao); if (!($rs=mysql_query($sql_situacao))) { die('Não foi possÃvel buscar os dados do banco!'); echo mysql_error(); echo "numero da familia não encontrado"; } $linha = mysql_fetch_array($rs); // agora percorre todas as colunas da linha que foi buscada, // e monta inputs com tipo hidden: foreach ($linha as $coluna => $valor) { echo "<input type='hidden' name='{$coluna}' value='{$valor}' />"; //criar condição para quando o foreach não existir } } ?> <tr> <td> <label>Nome:</label> <input type="text" name="nome" size="70"> </td> </tr> <tr><td><label>Possui filhos?<select name="filhos"> <option value="Sim"> Sim</option> <option value="Não"> Não</option></select></td></tr> <tr><td><label>Parentesco em relação ao responsável pela família:</label> <select name="parentesco"> <option value="filho(a)"> Filho(a)</option> <option value="esposo(a)"> Esposo(a) </option> <option value="avô"> avô </option> <option value="avó"> avó </option> <option value="primo(a)"> Primo(a) </option></select></td></tr> <tr><td><label>Sexo:</label> <input type="radio" name="sexo" value="f">Feminino <input type="radio" name="sexo" value="m"> Masculino</td></tr> <tr><td><label>Data de nascimento:</label> <input type="text" name="data_nasc" value="dd/mm/aaaa"></td></tr> <tr><td><label>B:</label> <select name="betim"> <option value="Sim"> Sim</option>> <option value="Não"> Não</option></select></td></tr> <tr> <td> <label>Possui alguma defieciência:</label> <input type="checkbox" name="possui_def" value="nao">Não Possuo deficiência <input type="checkbox" name="possui_def" value="física">Física <input type="checkbox" name="possui_def" value="visual">Visual <input type="checkbox" name="possui_def" value="auditiva">Auditiva <input type="checkbox" name="possui_def" value="mental">Mental <input type="checkbox" name="possui_def" value="multipla">Múltipla </tr> <tr><td><label>Profissão:</label><input type="text" name="profissao" value=""></td></tr> <tr><td><label>Escolaridade:</label> <select name="escol"> <option value="analfabeto"> Analfabeto</option> <option value="1° grau - incompleto"> 1° grau - incompleto </option> <option value="1° grau - completo"> 1° grau - completo </option> <option value="2° grau - incompleto"> 2° grau - incompleto </option> <option value="2° grau - completo"> 2° grau - completo</option> <option value="3° grau - incompleto"> 3° grau - incompleto </option> <option value="3° grau - incompleto"> 3° grau - completo </option> </select><td></tr> <tr><td><label>Atividade pretendida:</label><input type="text" name="ativ_pret" value=""></td></tr> <tr><td><label>RG</label><input type="text" name="nr_rg" value=""></td></tr> <tr><td><label>CPF</label><input type="text" name="cpf" value=""></td></tr> <tr><td><input type="radio" name="sexo" value="f">Feminino <input type="radio" name="sexo" value="m"> Masculino</td></tr> <tr><td><label>Telefone celular:</label><input type="text" name="tel_cel" value=""></td></tr> <tr><td><label>Motivo:</label><input type="text" name="motivo" value=""></tr></tr> <tr><td><label>Observação:</label><br/><textarea name="obs" rows="4" cols="50"> </textarea><br/><label>Histórico:</label><br/> <textarea name="hist" rows="4" cols="50"> </textarea><br/> <input type="submit" value="enviar" name="enviar"> </td> </tr> </table> </form> </div> <?php function invertedata($data_nasc) { $pos=explode("/", $data_nasc); $data_invertd=($pos[2]."/".$pos[1]."/".$pos[0]); return $data_invertd; } //campos que deveriam ser preenchidos pelo foreach $tel_fix=$POST['tel_fix']; $tipo_l=$POST['tipo_l']; $nome_rua=$POST['nome_rua']; $end= $tipo_l. $nome_rua; $bairro=$POST['bairro']; $cep=$POST['cep']; $cidade=$POST['cidade']; $c_uf=$POST['c_uf']; //campos que serão preenchidos pelo usuario $nr_fam=$_POST['nr_fam']; $nome=$_POST['nome']; $nr_filhos=$_POST['filhos']; $parentesco=$_POST['parentesco']; $sexo=$_POST['sexo']; $data_nasc1=$_POST['data_nasc']; $data_nasc=invertedata($data_nasc1); $betim=$POST['betim']; $possui_def=$POST['possui_def']; $profissao=$_POST['profissao']; $escolaridade=$POST['escol']; $ativ_preten=$POST['ativ_preten']; $nr_rg=$POST['nr_rg']; $cpf=$POST['cpf']; $tel_cel=$POST['tel_cel']; $motivo=$POST['motivo']; $obser=$POST['obs']; $hist=$POST['hist']; if($_POST["enviar"]) { include 'conexao.php'; $query= "INSERT INTO cadastro (id_cadastro, nr_fam, nome, filhos, parentesco, sexo, data_nasc, betim, possui_def, profissao, escolaridade, ativ_preten, nr_rg, cpf, tel_cel, tel_fix, end, bairro, cep, cidade, c_uf, motivo, hist, obser) VALUES (NULL, '$nr_fam', '$nome', '0', '$parentesco', '$sexo', '$data_nasc', '$betim', '$possui_def', '$profissao', '$escolaridade', '$ativ_preten', '$nr_rg', '$cpf', '$tel_cel', '$tel_fix', '$end', '$bairro', '$cep', '$cidade', '$c_uf', '$motivo', '$hist', '$obser')"; $sql=mysql_query($query); } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Cruz 1 Denunciar post Postado Abril 18, 2011 Cara, no teu código os campos hidden são montados dinamicamente, de acordo com os campos da tabela "cadastro". Já no script pra salvar os dados, estão definidos os campos estaticamente. Isso pode funcionar, mas está sujeito a inconsistência. Reveja sua lógica. Talvez o problema esteja ai. Outra coisa: tente colocar as variáveis recebidas do form dentro do if, já que eles só serão úteis quando submetido o form para salvar os dados. Compartilhar este post Link para o post Compartilhar em outros sites