shfp 0 Denunciar post Postado Outubro 21, 2015 Boa noite pessoal, sou nova aqui no grupo e gostaria de uma ajuda se for possível. O que quero fazer é o seguinte, tenho um select form criado dinamicamente com dados de um banco de dados. Quando faço testes imprimindo as variáveis do bd dá certo. Aí eu quero pegar a opção selecionada pelo usuário e quero gravar seu id em um outro banco de dados. o esquema do banco de dados é id_concurso | nome_concurso | ano . o código é o seguinte. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Selecionar Edital</title> <meta name="description" content="Source code generated using layoutit.com"> <meta name="author" content="LayoutIt!"> <link href="css/bootstrap.min.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> <style> .centered { margin: 0 auto !important; float: none !important; } </style> </head> <body> <form action="teste2.php" method="get"> <label class="control-label">Selecione o edital:</label><br> <select class="form_control" id="edital" name="edital"> <option value="">Selecione o edital:</option> <?php $servidor = "localhost"; $dbnome = "Editais"; $usuario = "postgres"; $porta = '5432'; $senha ="1234"; $conexao = pg_connect("host=$servidor port=$porta dbname=$dbnome user=$usuario password=$senha") or die ("Não foi possivel conectar ao servidor PostGreSQL"); //echo "Conexão efetuada com sucesso!!"; $sql = "Select \"Id_Concurso\", nome_concurso From edital"; $resultado = pg_query($sql); //aqui é o retorno da consulta if(pg_num_rows($resultado)>0){ while($row = pg_fetch_array($resultado)){ ?> <option value="<?php $row['Id_Concurso'];?>"> <?php echo $row['nome_concurso'];?> </option>"; <?php } }else{ echo "não existe nada no banco de dados!";} pg_close($conexao); ?> </select> <input type="submit" value="teste"> </form> </body> </html> o código do teste2.php é: <?php $servidor = "localhost"; $dbnome = "Editais"; $usuario = "postgres"; $porta = '5432'; $senha ="1234"; $conexao = pg_connect("host=$servidor port=$porta dbname=$dbnome user=$usuario password=$senha") or die ("Não foi possivel conectar ao servidor PostGreSQL"); //echo "Conexão efetuada com sucesso!!"; if(!empty($_POST["edital"])){ //Pega campos input $edital = $_POST["edital"]; //insere no banco $sql = "INSERT INTO teste(id) VALUES ($edital)"; pg_query($sql); } else{ echo "campo vazio!";} //fecha conexão pg_close($conexao); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Selecionar Edital</title> <meta name="description" content="Source code generated using layoutit.com"> <meta name="author" content="LayoutIt!"> <link href="css/bootstrap.min.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> <style> .centered { margin: 0 auto !important; float: none !important; } </style> </head> <body> </body> </html> O banco de dados que vou gravar o value do select tem apenas um campo chamado id. Porém quando clico no botão teste, a direcionar para outra página, não pega o valor do select e mostra que o campo está vazio. O que devo fazer? Compartilhar este post Link para o post Compartilhar em outros sites
Helmesvs 10 Denunciar post Postado Outubro 21, 2015 Você precisa da um echo para inserir o valor da variável no value <option value="<?php echo $row['Id_Concurso'];?>"> <?php echo $row['nome_concurso'];?> </option>"; Compartilhar este post Link para o post Compartilhar em outros sites
(RNU) Ruan Silva 61 Denunciar post Postado Outubro 21, 2015 Pelo que vi, vc apenas trocou as bolas.. está enviando o form pelo metodo GET e está tentando recuperar os dados no script pelo método POST. Então, basta trocar um dos lados. Ou muda o atributo method do form para POST ou muda: $edital = $_POST["edital"]; para: $edital = $_GET["edital"]; um breve conceito sobre POST e GET... http://www.devmedia.com.br/entendendo-os-metodos-get-e-post-no-php/10470 No google tem milhões rs Compartilhar este post Link para o post Compartilhar em outros sites
(RNU) Ruan Silva 61 Denunciar post Postado Outubro 21, 2015 E tem esse detalhe que o Helmesvs citou :D procure usar as tags [ code ] e [/ code] e da uma lida nesse tópico http://forum.imasters.com.br/topic/542539-atencao-orientacoes-e-regras-do-forum-de-php/, é de grande ajuda :) Compartilhar este post Link para o post Compartilhar em outros sites
shfp 0 Denunciar post Postado Outubro 21, 2015 O method get e post estava o post aí mudei pra get pra fazer testes, esqueci de mudar pra colar o código aqui. Fiz as mudanças sugeridas, mudei o method para post: <form action="teste2.php" method="post"> e adicionei um echo: <option value="<?php echo $row['Id_Concurso'];?>"> <?php echo $row['nome_concurso'];?> </option>"; Deu certo aqui. MUITO OBRIGADA A TODOS VOCÊS. Compartilhar este post Link para o post Compartilhar em outros sites