Jump to content
fellipe.arakaki

Como enviar os valores de uma combo pelo método POST via PHP

Recommended Posts

Boa tarde galera, estou criando um sistema de cadastro de produtos e estou tentando enviar os valores do form via post, acontece que eu tenho 3 campos do tipo texto e uma combobox onde o usuário escolhe a categoria, eu fiz o teste passando somente os 3 campos textos e o sistema insere no banco normalmente, mas quando tento pegar o valor de id que está dentro da combo o sistema não consegue inserir porém não mostra nenhum erro. A pergunta seria como eu faço pra pegar o valor do id que está dentro da combo?

Vou colocar o código pra facilitar

insere_produtos.png

Form-cadastro.png

Share this post


Link to post
Share on other sites

Não seria bem isso.... no caso eu tenho que carregar a combo com o id e a descrição da categoria e na página adiciona_produto.php passar somente o valor do id que está na combo, porém não está adicionando no banco e também não mostra qual o erro...

Share this post


Link to post
Share on other sites

Olá!
Acima da função insereProduto, coloque esse trecho de código:
 

<?php
if(sizeof($_POST)){
  echo '<pre>';
  print_r($_POST);
  echo '</pre>';
  die();
}

Só pra você saber se os dados estão chegando corretamente.
Se estiver, o problema pode ser na execução de sua query de inserção

Mostre-nos como você criou a query de inserção pra gente te orientar, blz?

Share this post


Link to post
Share on other sites

Olá Tetsuo, eu coloquei o trecho que você falou acima da função insereProduto e retornou erro exatamente quando tenta pegar o POST referente ao <select> vou postar abaixo o erro que retornou e colocar a query do banco

 

 

insereProduto.png

erro_Post.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Public2004
      Boas. Para fins de aprendizado, estou criando um tema personalizado e do zero, a ideia é não ter a dependência de nenhum plugin e entender como funciona os processos. Nesse caminho surgiu uma dúvida, explico:
      Vou cadastrar em uma determinada categoria alguns posts meio padrão tipo, titulo, corpo (texto) e escrever um resumo no campo específico.
      Só que no corpo de cada post eu vou ter um elemento específico, tipo um "embed" (apenas um em cada post).
      Tem como criar alguma função, filtro ou sei lá, que de alguma forma na listagem (loop) dos posts eu consiga capturar apenas esse elemento  específico do corpo?
      Resumindo, o que eu pretendo é criar uma página apenas dessa categoria e na listagem trazer o Título, o Resumo e esse elemento específico do corpo.
       
      Obrigado.
    • By ilbett
      Boa noite prezados.
       
      Estou com um problema há alguns dias. Espero que um de vocês tenha uma luz para ele haha.
       
      Estou fazendo uma integração entre a loja de um cliente hospedada na NuvemShop e a automatizadora de marketing RD Station.
      Através do Postman eu faço um GET da NuvemShop e um POST dos dados pegos da NuvemShop para a RD Station.
      O Problema, nesse caso, é que eles nomeiam as strings de formas diferentes.
       
      Vocês conhecem algum intermediador que receba esse POST com os dados da NuvemShop e traduza, por exemplo, "costumer.name" para "name" e envie para a RD?
      Ou algum script que eu possa rodar no Postman para fazer essas "traduções" das strings?
       
      Desde já, muito obrigado!
    • By andrelimaverde
      Pessoal desde já agradeço a todos, e vamos lá.
      Primeiro esclareço que meu conhecimento em PHP é básico e em MYSQL praticamente nulo...
      Meu objetivo é: Salvar dados do formulário (3 páginas) no mesmo ID (mesma linha) do banco de dados.
      Tenho:
       
      <!-- PÁGINA INDEX.PHP --> <?php session_start(); ?> <html> <form method="POST" action="1.php"> <input type="text" name="namenome" placeholder="Nome"> <input type="text" name="namesobrenome" placeholder="Sobrenome"> <input type="radio" name="radio" value="Masculino"> <input type="radio" name="radio" value="Feminino"> <input type="submit" name="namebtn" value="Próximo Passo"> </form> </html> E assim são as outras duas páginas, exemplificando, muito simples...
      No Index o FORM tem action="1.php" 
      Na Pagina2 o FORM tem action="2.php" e assim sucessivamente.
      1.php funcionando perfeitamente:
      <?php session_start(); include_once 'conexao.php'; //conexao.php somente faz a conexão com banco de dados, define as credenciais e atrubi a variável $conn //$conn = new PDO('mysql:host=' . HOST . ';dbname=' . DBNAME . ';', USER, PASS); $btn = filter_input(INPUT_POST, 'namebtn', FILTER_SANITIZE_STRING); if($btn){ //Recebe os dados do form $nom = filter_input(INPUT_POST, 'namenome', FILTER_SANITIZE_STRING); $sob = filter_input(INPUT_POST, 'namesobrenome', FILTER_SANITIZE_STRING); $rad = filter_input(INPUT_POST, 'radio', FILTER_SANITIZE_STRING); //Insere os dados no banco $get_data = "INSERT INTO info_tabela (nome, sobrenome, sexo) VALUES (:namenome, :namesobrenome, :radio)"; $insert_data = $conn->prepare($get_data); $insert_data->bindParam(':namenome', $nom); $insert_data->bindParam(':namesobrenome', $sob); $insert_data->bindParam(':radio', $rad); if($insert_data->execute()){ header("Location:pagina2.php"); //Se enviar corretamente redireciona para segunda página }else{ $_SESSION['msg'] = "<p style='color:tomato;background:#fff;'>Não foi possível enviar suas informações, verifique e tente novamente.</p>"; header("Location:index.php"); //Se não apresenta o erro } }else{ $_SESSION['msg'] = "<p style='color:tomato;'>Não foi possível enviar suas informações, verifique e tente novamente.</p>"; header("Location:index.php"); } Até ai tudo bem, insere corretamente os dados nas respectivas colunas da tabela ID=1, NOME= 'nome', SOBRENOME= 'sobrenome', SEXO= 'sexo'.
      No Banco de Dados ainda temos as colunas a serem preenchidas no mesmo ID(mesma linha) --> CIDADE= ' ', ENDEREÇO= ' ', CEP= ' ', 
      Que referem-se à pagina2.php:
      <!-- PÁGINA PAGINA2.PHP --> <?php session_start(); ?> <html> <form method="POST" action="2.php"> <!-- ACTION 2.PHP RESPECTIVAMENTE --> <input type="text" name="namecidade" placeholder="Cidade"> <input type="text" name="nameendereco" placeholder="Endereço"> <input type="tex" name="namecep" placeholder="Cep"> <input type="submit" name="namebtn" value="Próximo Passo"> </form> </html> O problema, é que ao enviar o formulário com action="2.php" cujo arquivo possui o mesmo código que o "1.php" mudando somente os dados recebidos,
      No Banco de Dados é criado um novo ID(2) ou seja, uma nova linha, com os dados atuais nas colunas (cidade, endereço, cep) preenchidos, e as colunas anteriores (nome, sobrenome, sexo) vazias...
      Pessoal esta é a minha dúvida, como resolver, salvar todos os dados num mesmo id, mesma linha. O código do arquivo 2.php é o mesmo pois não faço ideia de como implementar isso, como em soluções anteriores tais dados costumava enviar com PhpMailer para e-mail então não entendo de MYSQL.
       
    • By andrelimaverde
      Pessoal desde já agradeço a todos, e vamos lá.
      Primeiro esclareço que meu conhecimento em PHP é básico e em MYSQL praticamente nulo...
      Meu objetivo é: Salvar dados do formulário (3 páginas) no mesmo ID (mesma linha) do banco de dados.
      Tenho:
      <!-- PÁGINA INDEX.PHP --> <?php session_start(); ?> <html> <form method="POST" action="1.php"> <input type="text" name="namenome" placeholder="Nome"> <input type="text" name="namesobrenome" placeholder="Sobrenome"> <input type="radio" name="radio" value="Masculino"> <input type="radio" name="radio" value="Feminino"> <input type="submit" name="namebtn" value="Próximo Passo"> </form> </html> E assim são as outras duas páginas, exemplificando, muito simples...
      No Index o FORM tem action="1.php" 
      Na Pagina2 o FORM tem action="2.php" e assim sucessivamente.
       
      1.php funcionando perfeitamente:
      <?php session_start(); include_once 'conexao.php'; //conexao.php somente faz a conexão com banco de dados, define as credenciais e atrubi a variável $conn //$conn = new PDO('mysql:host=' . HOST . ';dbname=' . DBNAME . ';', USER, PASS); $btn = filter_input(INPUT_POST, 'namebtn', FILTER_SANITIZE_STRING); if($btn){ //Recebe os dados do form $nom = filter_input(INPUT_POST, 'namenome', FILTER_SANITIZE_STRING); $sob = filter_input(INPUT_POST, 'namesobrenome', FILTER_SANITIZE_STRING); $rad = filter_input(INPUT_POST, 'radio', FILTER_SANITIZE_STRING); //Insere os dados no banco $get_data = "INSERT INTO info_tabela (nome, sobrenome, sexo) VALUES (:namenome, :namesobrenome, :radio)"; $insert_data = $conn->prepare($get_data); $insert_data->bindParam(':namenome', $nom); $insert_data->bindParam(':namesobrenome', $sob); $insert_data->bindParam(':radio', $rad); if($insert_data->execute()){ header("Location:pagina2.php"); //Se enviar corretamente redireciona para segunda página }else{ $_SESSION['msg'] = "<p style='color:tomato;background:#fff;'>Não foi possível enviar suas informações, verifique e tente novamente.</p>"; header("Location:index.php"); //Se não apresenta o erro } }else{ $_SESSION['msg'] = "<p style='color:tomato;'>Não foi possível enviar suas informações, verifique e tente novamente.</p>"; header("Location:index.php"); } Até ai tudo bem, insere corretamente os dados nas respectivas colunas da tabela ID=1, NOME= 'nome', SOBRENOME= 'sobrenome', SEXO= 'sexo'.
      No Banco de Dados ainda temos as colunas a serem preenchidas no mesmo ID(mesma linha) --> CIDADE= ' ', ENDEREÇO= ' ', CEP= ' ', 
      Que referem-se à pagina2.php:
      <!-- PÁGINA PAGINA2.PHP --> <?php session_start(); ?> <html> <form method="POST" action="2.php"> <!-- ACTION 2.PHP RESPECTIVAMENTE --> <input type="text" name="namecidade" placeholder="Cidade"> <input type="text" name="nameendereco" placeholder="Endereço"> <input type="tex" name="namecep" placeholder="Cep"> <input type="submit" name="namebtn" value="Próximo Passo"> </form> </html> O problema, é que ao enviar o formulário com action="2.php" cujo arquivo possui o mesmo código que o "1.php" mudando somente os dados recebidos,
      No Banco de Dados é criado um novo ID(2) ou seja, uma nova linha, com os dados atuais nas colunas (cidade, endereço, cep) preenchidos, e as colunas anteriores (nome, sobrenome, sexo) vazias...
       
      Pessoal esta é a minha dúvida, como resolver, salvar todos os dados num mesmo id, mesma linha. O código do arquivo 2.php é o mesmo pois não faço ideia de como implementar isso, como em soluções anteriores tais dados costumava enviar com PhpMailer para e-mail então não entendo de MYSQL.
       
      Código simplificado e resumido ao máximo...
      Obrigado.
    • By Sherlock02
      Olá!
      Eu tenho um código em javascript cujo resultado está aparecendo na seguinte ordem:
      1- Imagem do post
      2- Título com link do post
      3- Sumário do post
      4- Data
      5- Quantidade de comentários
      6- Leia mais link.
       
      Eu queria colocar trocar o 4° com o 3°, e colocar a data depois do link do post (o restante permanece igual). Então ficaria:
      2- Título com link do post
      3- Data
      4- Sumário do post
       
      Mas eu não consigo fazer isso. Se eu recorto o código e colo abaixo, ele desaparece. Como fazer isso?
       
      <script type='text/javascript'> //<![CDATA[     function labelthumbs(json) {         document.write('<ul id="label_with_thumbs">');         for (var i = 0; i < numposts; i++) {             var entry = json.feed.entry[i];             var posttitle = entry.title.$t;             var posturl;             if (i == json.feed.entry.length) break;             for (var k = 0; k < entry.link.length; k++) {                 if (entry.link[k].rel == 'replies' && entry.link[k].type == 'text/html') {                     var commenttext = entry.link[k].title;                     var commenturl = entry.link[k].href;                 }                 if (entry.link[k].rel == 'alternate') {                     posturl = entry.link[k].href;                     break;                 }             }             var thumburl;             try {                 thumburl = entry.media$thumbnail.url;             } catch (error) {                 s = entry.content.$t;                 a = s.indexOf("<img");                 b = s.indexOf("src=\"", a);                 c = s.indexOf("\"", b + 5);                 d = s.substr(b + 5, c - b - 5);                 if ((a != -1) && (b != -1) && (c != -1) && (d != "")) {                     thumburl = d;                 } else thumburl = 'http://3.bp.blogspot.com/-zP87C2q9yog/UVopoHY30SI/AAAAAAAAE5k/AIyPvrpGLn8/s1600/picture_not_available.png';             }             var postdate = entry.published.$t;             var cdyear = postdate.substring(0, 4);             var cdmonth = postdate.substring(5, 7);             var cdday = postdate.substring(8, 10);             var monthnames = new Array();             monthnames[1] = "Jan";             monthnames[2] = "Feb";             monthnames[3] = "Mar";             monthnames[4] = "Apr";             monthnames[5] = "May";             monthnames[6] = "June";             monthnames[7] = "July";             monthnames[8] = "Aug";             monthnames[9] = "Sept";             monthnames[10] = "Oct";             monthnames[11] = "Nov";             monthnames[12] = "Dec";             document.write('<li class="clearfix">');             if (showpostthumbnails == true)                 document.write('<a href="' + posturl + '" target ="_top"><img class="label_thumb" src="' + thumburl + '"/></a>');         document.write('<a href="' + posturl + '"class="titlepost" target ="_top">' + posttitle + '</a>');             if ("content" in entry) {                 var postcontent = entry.content.$t;             } else             if ("summary" in entry) {                 var postcontent = entry.summary.$t;             } else var postcontent = "";             var re = /<\S[^>]*>/g;             postcontent = postcontent.replace(re, "");             if (showpostsummary == true) {                 if (postcontent.length < numchars) {                     document.write('<div class="summarypost">');                     document.write(postcontent);                     document.write('</div>');                 } else {                     document.write('<div class="summarypost">');                     postcontent = postcontent.substring(0, numchars);                     var quoteEnd = postcontent.lastIndexOf(" ");                     postcontent = postcontent.substring(0, quoteEnd);                     document.write(postcontent + '...');                     document.write('</div>');                 }             }             var towrite = '';             var flag = 0;             document.write('<br>');             if (showpostdate == true) {                 towrite = towrite + '<div class="datepost">' + cdday + '.' + monthnames[parseInt(cdmonth, 10)] + '.' + cdyear + '</div>';                 flag = 1;             }             if (showcommentnum == true) {                 if (flag == 1) {                     towrite = towrite + ' ';                 }                 if (commenttext == '1 Comments') commenttext = '1 Comment';                 if (commenttext == '0 Comments') commenttext = 'No Comments';                 commenttext = '<a href="' + commenturl + '" target ="_top">' + commenttext + '</a>';                 towrite = towrite + commenttext;                 flag = 1;;             }             if (displaymore == true) {                 if (flag == 1) towrite = towrite + ' ';                 towrite = towrite + '<a href="' + posturl + '" class="url" target ="_top">Continue lendo »</a>';                 flag = 1;;             }             document.write(towrite);             document.write('</li>');             if (displayseparator == true)                 if (i != (numposts - 1))                     document.write('');         }         document.write('</ul>');     } //]]> </script>  
      Obrigada!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.