fsf Postado Novembro 15, 2004 Denunciar Share Postado Novembro 15, 2004 Oi pessoal,Tenho um select com varias categorias de produtos. Um outro que deve retornar todos os produtos relacionados a categoria escolhida acima. alguém pode me dizer como faço isto?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Novembro 15, 2004 Denunciar Share Postado Novembro 15, 2004 Você faz com que o select com as categorias envie o form toda vez que for alterado. Então, com base nesse valor, você exibe o select de baixo, com os produtos... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsf Postado Novembro 15, 2004 Autor Denunciar Share Postado Novembro 15, 2004 você não tem um pequeno exemplo por ai??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Novembro 15, 2004 Denunciar Share Postado Novembro 15, 2004 você não tem um pequeno exemplo por ai??? Não porque eu uso a política de não passar código pronto.Tem muita gente que não tá nem aí pra aprender PHP e fica usando a gente como debug vivo. Não é pra isso que serve o fórum.Não estou tirando conclusões precipitadas ao seu respeito, o fato é que eu não passo código pronto a menos que eu conheça o cidadão; caso contrário eu explico e ajudo com a maior paciência do mundo, mas a pessoa tem que estar interessada em aprender.. Tente fazer. Se não der certo, poste o código aí e a gente te ajuda a consertar... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsf Postado Novembro 15, 2004 Autor Denunciar Share Postado Novembro 15, 2004 Vamos la então!!!criei um formulario com todos os dados do usuario tem que preencher, junto com este estao os dois selects, o primeiro eu consegui implementer, mas o segundo estou com problemas. você mensionou que era so enviar o form toda vez que a pagina fosse alterada.não entendi, tenho que criar um outro form ou existe um comando em php que faça isso. Veja so o formulario: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>Shopping Virtual</TITLE> <META http-equiv=Content-Type content="text/html; charset=iso-8859-1"> <script language=JavaScript type=text/JavaScript> <!-- function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); } MM_reloadPage(true); //--> </script> <style type="text/css"> <!-- .style4 {font-size:15px} --> </style></head> <style TYPE="text/css"> <!-- body { SCROLLBAR-FACE-COLOR:#0066cc; SCROLLBAR-HIGHLIGHT-COLOR: #ECECFF; SCROLLBAR-SHADOW-COLOR: #000000; SCROLLBAR-3DLIGHT-COLOR: #ECECFF; SCROLLBAR-ARROW-COLOR: white; SCROLLBAR-TRACK-COLOR: #ECECFF; SCROLLBAR-DARKSHADOW-COLOR: #ECECFF; } .style1 { font-family: Geneva, Arial, Helvetica, sans-serif; font-style: italic; font-size:15px; } <form action="<?php echo $PHP_SELF?>" method="POST"> --> </style> <body></SCRIPT> <p><img src="IMAGENS/topo24.png" width="663" height="70"></p> <META content="MSHTML 6.00.2800.1106" name=GENERATOR> <table cellspacing=1 cellpadding=2 width=664 bgcolor=#0061C1 border=0> <colgroup> <col width=760> <tbody> <tr> <td width=664 height=350 valign=top bordercolor="#0066CC" bgcolor=#EAF4FF> <form enctype="multipart/form-data"> <p class=style1 align=center><strong><font color="#0066CC" face="Arial, Helvetica, sans-serif">Preencha os dados abaixo e exija sua promoção!!! </font ></strong></p> <p class=style1 align=center><font color="#0066CC">Confira os produtos que já estão em</font> <a href="bd.xml">promoção</a>!</p> <p class=style1 align=left><font color="#0066CC"><em>Prezado Cliente ,escolha o mês e o ano o qual você queira que esta promoção aconteça: </em> </font></p> <p class=style1 align=left> <p class=style1 align=left><font color="#0066CC">Mês: <select name=select> <option selected>Escolha o mês</option> <option>Janeiro</option> <option>Fevereiro</option> <option>Março</option> <option>Abril</option> <option>Maio</option> <option>Junho</option> <option>Julho</option> <option>Agosto</option> <option>Setembro</option> <option>Outubro</option> <option>Novembro</option> <option>Dezembro</option> </select> Ano: <select name=select3> <option selected>Escolha o ano</option> <option>2004</option> <option>2005</option> <option>2006</option> <option>2007</option> <option>2008</option> <option>2009</option> <option>2010</option> </select> </font> <p class=style1 align=left> </p> <p class=style1 align=left><font color="#0066CC">Escolha o Produto:</font> </p> <p class=style1 align=left><font color="#0066CC">Categoria:</font> </p> <?php echo "<select name=select2>"; $ligacao=mysql_connect(); $sql="select categoria from categoria"; $resposta=mysql_db_query("sgpa","$sql",$ligacao); while ($dados=mysql_fetch_array($resposta)){ echo "<option>".$dados["categoria"]."</option>"; } mysql_close($ligacao); echo "</select>"; ?> </p> <p class=style1 align=left> <font color="#0066CC"> Produto: <select name=select4> <option selected>Selecione o Produto</option> <option>Geladeira</option> </select> </font> </p> <p align="left" class=style1> </p> <p align="left" class=style1><font color="#0066CC">Informe seu nome: </font></p> <p class=style1><font face=TAHOMA color=#0066CC>Nome:</font><font face=TAHOMA color=black> <span class=style1><font face=TAHOMA color=black size=1> <input name="nome" type="text" style="BORDER-RIGHT: #0061C1 1px solid; BORDER-TOP: #0061C1 1px solid; FONT: 11px Verdana,arial,helvetica; BORDER-LEFT: #0061C1 1px solid; WIDTH: 400px; COLOR: #000000; BORDER-BOTTOM: #0061C1 1px solid; BACKGROUND-COLOR: #ffffff" value=""> </font></span></font></p> <p class=style1> </p> <p align="left" class=style1><font face=TAHOMA color=black><font color="#0066CC">Meio(s) pelo qual deseja ser informado caso a promoção aconteça:</font></font></p> <p class=style1> <input type="checkbox" value="checkbox" name="sim_nao"> <font color="#0066cc">E_mail</font><font color="blue" size="1" face="TAHOMA"> <input type="text" style="BORDER-RIGHT: #0061C1 1px solid; BORDER-TOP: #0061C1 1px solid; FONT: 11px Verdana,arial,helvetica; BORDER-LEFT: #0061C1 1px solid; WIDTH: 400px; COLOR: #000000; BORDER-BOTTOM:#0061C1 1px solid; BACKGROUND-COLOR: #ffffff" name=login2222 onFocus="if (this.form.sim_nao.checked != true) { this.blur();}"> </font><font color="black" size="1" face="TAHOMA"> <p class=style1> <input type="checkbox" value="checkbox" name="sim_nao3" color="blue"> <font color="#0066cc">Celular </font> <input type="text" style="BORDER-RIGHT: #0061C1 1px solid; BORDER-TOP: #0061C1 1px solid; FONT: 11px Verdana,arial,helvetica; BORDER-LEFT: #0061C1 1px solid; WIDTH: 400px; COLOR: #000000; BORDER-BOTTOM: #0061C1 1px solid; BACKGROUND-COLOR: #ffffff" name=login2224 onFocus="if (this.form.sim_nao3.checked != true) { this.blur();}"> </p> </font> <label></label> <p class=style1><font color="black" size="1" face="TAHOMA"> </font></p> <p class=style1 align=center><font face=TAHOMA color=black size=1> <input class=style1 style="BORDER-RIGHT:#0061C1 1px solid; BORDER-TOP: #0061C1 1px solid; FONT: 15px Verdana,arial,helvetica; BORDER-LEFT: #0061C1 1px solid; WIDTH: 100px; COLOR: #ffffff; BORDER-BOTTOM: #0061C1 1px solid; HEIGHT: 35px; BACKGROUND-COLOR: #82A3FB" type="submit" name="submit" value="Enviar"> <input style="BORDER-RIGHT: #0061C1 1px solid; BORDER-TOP: #0061C1 1px solid; FONT: 15px Verdana,arial,helvetica; BORDER-LEFT: #0061C1 1px solid; WIDTH: 100px; COLOR: #ffffff; BORDER-BOTTOM: #0061C1 1px solid; HEIGHT: 35px; BACKGROUND-COLOR: #82A3FB" type="reset" value="Limpar" name=validar222> </font> </form> <p></p> <p class=style1 align=center> </p></td> </tr> </tbody> </table> <p> </p> <TABLE cellSpacing=0 cellPadding=2 width=900 bgColor=#ffcc99border=0> <COLGROUP> <COL width=900> <TBODY></TBODY></TABLE></BODY></HTML> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Novembro 15, 2004 Denunciar Share Postado Novembro 15, 2004 Pra fazer isso que eu imagino que você queira, você vai precisar ter algum conhecimento de JavaScript.Porque você precisa fazer com que, quando o usuário mudar o valor do 1º <select>, o formulário seja submetido.Se não souber como se faz isso, dá uma passada na seção de JavaScript e pergunta por lá. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsf Postado Novembro 27, 2004 Autor Denunciar Share Postado Novembro 27, 2004 Oi pessoal, o pessoal do javascript pediu que voltasse para o forum php dizendo que aqui encontraria uma fubcao em php que resolve-se o meu problema!!A pregunta:Tenho um select com varias categorias de produtos. Um outro que deve retornar todos os produtos relacionados a categoria escolhida acima. alguém pode me dizer como faço isto?? Fiz alguma oisa com javascript, mas o combo produtos não esta sendo carregado!! <html> <head> <title>TESTE DE COMBO</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript"> function go(CAT){ document.location.href='?categoria='+ CAT; } </script> </head> <body> <form > <p class=style1 align=left><font color="#0066CC">Escolha o Produto:</font> </p> <p class=style1 align=left><font color="#0066CC">Categoria:</font> <select name="categoria"> <?php $ligacao=mysql_connect(); $sql="select categoria from categoria"; $resposta=mysql_db_query("sgpa","$sql",$ligacao); while ($dados=mysql_fetch_array($resposta)){ echo "<option onClick=\"javascript:go('".$dados["categoria"]."');\">".$dados["categoria"]."</option>"; } mysql_close($ligacao); ?> <?php $conn=mysql_connect(); $sql3="select cod_categoria from categoria where categoria = '$_GET[categoria]' "; echo $_GET[categoria]; $resposta2=mysql_db_query("sgpa","$sql3",$conn); $cod=$resposta2; mysql_close($conn); ?> </select> </p> <p class=style1 align=left> <font color="#0066CC"> Produto: <select name="produto"> <option>Selecione um produto</option> <?php $liga=mysql_connect(); $sql1="select descricao from produto where cod_categoria ='$cod'"; $resp=mysql_db_query("sgpa","$sql1",$liga); while ($dados2=mysql_fetch_array($resp)){ echo "<option>".$dados2["descricao"]."</option>"; } mysql_close($liga); ?> </select> </font> </p> <input name="Enviar" type="submit" value="enviar"> </form> </body> </html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Novembro 27, 2004 Denunciar Share Postado Novembro 27, 2004 Seguinte...Você quer que o 2º select receba valores de acordo com o que for escolhido no 1º, é isso?Se o cara escolhe "Brinquedos", aparece os brinquedos no 2º, se ele escolhe "Videos", aparece os videos no 2º. É isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsf Postado Novembro 27, 2004 Autor Denunciar Share Postado Novembro 27, 2004 Sim é isto mesmo!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Novembro 27, 2004 Denunciar Share Postado Novembro 27, 2004 Então, cara, você sabe que o PHP é SERVER-SIDE, certo?Então, pra você processar qualquer informação, você tem que enviar ela para o servidor, lá ela vai ser processada e o resultado (HTML/JavaScript e outras linguagens CLIENT-SIDE) vão ser retornados para o usuário.Para enviar informações para um processamento em PHP, é a mesma coisa, você precisa enviar informação para o servidor. Como se envia informação para o servidor?Enviando um formulário ou passando dados pela query string [popular URL].Então o que você precisa fazer? Precisa que, quando o usuário alterar o valor do 1º select, seja enviado um formulário ou uma informação em Query String para que o PHP possa processar isso e buscar os itens da 2ª categoria no banco de dados.Entendeu o esprito da coisa? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsf Postado Novembro 27, 2004 Autor Denunciar Share Postado Novembro 27, 2004 então, tenho que criar outra pagina para que ela possa receber os dados da pagina anterior e fazer a consulta? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Novembro 27, 2004 Denunciar Share Postado Novembro 27, 2004 Não necessariamente, eu disse que precisa ser enviada para uma página, não disse outra página! Você vai enviar as informações para essa mesma página e ela, caso esteja recebendo informações certas, vai procurar no banco de dados e montar o 2º select dinamicamente. Entendeu? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsf Postado Novembro 27, 2004 Autor Denunciar Share Postado Novembro 27, 2004 Seria com uma funcao javascript pareceida com esta? <script language="JavaScript"> function go(CAT){ document.location.href='teste3.php?categoria='+ CAT; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Novembro 27, 2004 Denunciar Share Postado Novembro 27, 2004 Você também pode enviar o formulário setando que uma variáve, por exemplo "fetch_select_data = true", pra página que receber esse form saber que deve somente buscar os dados pro 2º select e não tentar enviar o formulário pro destino final... Mas é por aí, sim.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsf Postado Novembro 27, 2004 Autor Denunciar Share Postado Novembro 27, 2004 A pagina ficaria então mais ou menos deste jeito?? <html> <head> <title>TESTE DE COMBO</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript"> function go(CAT){ document.location.href='teste3.php?categoria='+ CAT; } </script> </head> <body> <form > <p class=style1 align=left><font color="#0066CC">Escolha o Produto:</font> </p> <p class=style1 align=left><font color="#0066CC">Categoria:</font> <select name="categoria"> <?php $ligacao=mysql_connect(); $sql="select categoria from categoria"; $resposta=mysql_db_query("sgpa","$sql",$ligacao); while ($dados=mysql_fetch_array($resposta)){ echo "<option onClick=\"javascript:go('".$dados["categoria"]."');\">".$dados["categoria"]."</option>"; } mysql_close($ligacao); ?> <?php $conn=mysql_connect(); $sql3="select cod_categoria from categoria where categoria = '$_GET[categoria]' "; echo $_GET[categoria]; $resposta2=mysql_db_query("sgpa","$sql3",$conn); $cod=$resposta2; mysql_close($conn); ?> </select> </p> <p class=style1 align=left> <font color="#0066CC"> Produto: <select name="produto"> <option>Selecione um produto</option> <?php $liga=mysql_connect(); $sql1="select descricao from produto where cod_categoria ='$cod'"; $resp=mysql_db_query("sgpa","$sql1",$liga); while ($dados2=mysql_fetch_array($resp)){ echo "<option>".$dados2["descricao"]."</option>"; } mysql_close($liga); ?> </select> </font> </p> <input name="Enviar" type="submit" value="enviar"> </form> </body> </html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Novembro 27, 2004 Denunciar Share Postado Novembro 27, 2004 A parte de "quando o usuário muda a opçãod o 1º select ele envia o form" não sei se vai funcionar. Você testou isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsf Postado Novembro 27, 2004 Autor Denunciar Share Postado Novembro 27, 2004 Realmente não esta carregando o combo de produtos!! você tem alguma ideia?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Novembro 27, 2004 Denunciar Share Postado Novembro 27, 2004 Foi pra isso que eu te disse pra ir pra JavaScript... Você precisa fazer com que, ao usuário mudar o valor do 1º select, o formulário seja enviado ou abra outra página que vai informar o valor do 1º select. Acho a solução usando formulários muito mais fácil de se desenvolver.Volta lá em JS e pede pro pessoal te ensinar a fazer isso que eles te explicam... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
fsf
Oi pessoal,
Tenho um select com varias categorias de produtos. Um outro que deve retornar todos os produtos relacionados a categoria escolhida acima. alguém pode me dizer como faço isto??
Link para o comentário
Compartilhar em outros sites
17 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.