diesel10 Posted February 26, 2014 at 07:01 PM Report #546773 Posted February 26, 2014 at 07:01 PM Boas, este é o meu primeiro post aqui(desculpem estar já a pedir coisas) mais preciso urgentemente de ajuda... Eu e um meu outro companheiro estamos envolvidos na construção de um site de vendas online(que vende peças de automóvel) e a questão é esta: Construímos um formulário(que estamos a tentar que seja um filtro de pesquisa rápida), onde quando seleciona-mos primeiro a marca, depois o modelo e de seguida o motor - este vá parar a página de produtos para cada modelo/marca especifica.(como por exemplo um que está neste site: http://www.mister-auto.pt/pt/ ). O nosso grande problema é que queremos puxar da tabela os dados para cada select menu (por exemplo a audi para o primeiro select menu) e que estes vão impor condições quando seleccionados possamos ir buscar unicamente os modelos da audi(e não de todas as marcas, como acontece). Usamos recordset para ir buscar campos a base de dados, mas não estamos a conseguir efeito... desde já convém referir que sou um principiante na programação, obrigado pela vossa atenção Rui(diesel10)
yoda Posted February 26, 2014 at 07:19 PM Report #546774 Posted February 26, 2014 at 07:19 PM O que tens feito? before you post, what have you tried? - http://filipematias.info sense, purpose, direction
taviroquai Posted February 27, 2014 at 12:19 AM Report #546804 Posted February 27, 2014 at 12:19 AM (edited) Viva, Basicamente precisas de: Um formulário HTML para permitir o input do utilizador Ler os dados conforme o input do utilizador. Mostrar os resultados em HTML Exemplo super simples: <?php // Ler dados $marcas = array('volvo', 'renault'); $modelos = array(); $resultados = array(); // Não existem resultados... if (isset($_POST['marca'])) { $modelos = array('laguna'); // ler modelos da marca seleccionada $resultados = array(); // obter resultados, de uma base de dados ou XML, etc... } ?> <form method="post"> <label>Marca</label> <select name="marca"> <option value="volvo">Volvo</option> </select> <label>Modelo</label> <select name="modelo"></select> <input type="submit" value="Pesquisar" /> </form> <h2>Resultados</h2> <?php if (empty($resultados)) { ?> <p>Não existem resultados</p> <?php } else { ?> <ul> <?php foreach ($resultados as $item) { ?> <li><?php echo (string) $item; ?></li> <?php } ?> </ul> <?php } ?> Edited February 27, 2014 at 12:20 AM by taviroquai 1 Report
diesel10 Posted February 27, 2014 at 12:24 AM Author Report #546805 Posted February 27, 2014 at 12:24 AM boas yoda, tenho o form com um jumpmenumarca que está a receber os valores do campo CAR_BRANDS da tabela tablecars, seguido de um botão(que ao clicar está a ir para um url e não é o que quero(o probelma esta em onclick="MM_goToURL('parent','feito.php?<?php echo $row_rsmarca['CAR_BRANDS']; ?>=')), quero que ele passe o valor seleccionado para o jumpmenumodelo que está por baixo e que este vá buscar o modelo ao campo MODEL_CAR da mesma tabela, mas com a condição de que se por exemplo: se escolher AUDI em jumpmenumarca, em jumpmenumodelo irá ter de aparecer todos os modelos da audi ). Tenho ainda o jumpmenumotor(que também nao funciona e vai ter de depender do selecionado nos anteriores). Obrigado pelo teu interesse, em baixo esta todo o código do form, qualquer coisa que esteja mal ou que falte para poderes me ajudar(podes ralhar à vontade 😁 ). Abraço!!! <?php require_once('Connections/con_site.php'); ?> <?php require_once('Connections/con_site.php'); ?> <?php require_once('Connections/con_site.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } mysql_select_db($database_con_site, $con_site); $query_rsmarca = "SELECT DISTINCT CAR_BRANDS FROM tablecars"; $rsmarca = mysql_query($query_rsmarca, $con_site) or die(mysql_error()); $row_rsmarca = mysql_fetch_assoc($rsmarca); $totalRows_rsmarca = mysql_num_rows($rsmarca); $colname_Recordset1 = "0"; if (isset($_POST['CAR_BRANDS'])) { $colname_Recordset1 = $_POST['CAR_BRANDS']; } mysql_select_db($database_con_site, $con_site); $query_Recordset1 = sprintf("SELECT * FROM tablecars WHERE CAR_BRANDS = %s ORDER BY MODEL_CAR ASC", GetSQLValueString($colname_Recordset1, "text")); $Recordset1 = mysql_query($query_Recordset1, $con_site) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysql_num_rows($Recordset1); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> <script type="text/javascript"> function MM_jumpMenuGo(objId,targ,restore){ //v9.0 var selObj = null; with (document) { if (getElementById) selObj = getElementById(objId); if (selObj) eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'"); if (restore) selObj.selectedIndex=0; } } function MM_jumpMenu(targ,selObj,restore){ //v3.0 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'"); if (restore) selObj.selectedIndex=0; } function MM_goToURL() { //v3.0 var i, args=MM_goToURL.arguments; document.MM_returnValue = false; for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'"); } </script> </head> <body> <form name="form" id="form"> <p> <select name="jumpMenuMarca" id="jumpMenuMarca" style="width:200px; height:30px; font-size:14px; font-family:Verdana, Geneva, sans-serif"> <option value="">Selecionar marca</option> <?php do { ?> <option value="<?php echo $row_rsmarca['CAR_BRANDS']?>"><?php echo $row_rsmarca['CAR_BRANDS']?></option> <?php } while ($row_rsmarca = mysql_fetch_assoc($rsmarca)); $rows = mysql_num_rows($rsmarca); if($rows > 0) { mysql_data_seek($rsmarca, 0); $row_rsmarca = mysql_fetch_assoc($rsmarca); } ?> </select> <input name="go_button" type="button" id= "go_button" style="width:30px; height:30px; font-size:18px; font-family:Verdana, Geneva, sans-serif" onclick="MM_goToURL('parent','feito.php?<?php echo $row_rsmarca['CAR_BRANDS']; ?>=');return document.MM_returnValue" value=">" /> </p> <p> <select name="jumpMenuModelo" disabled="disabled" id="jumpMenuModelo" style="width:200px; height:30px; font-size:14px; font-family:Verdana, Geneva, sans-serif"> <?php do { ?> <option value="<?php echo $row_Recordset1['MODEL_CAR']?>"><?php echo $row_Recordset1['MODEL_CAR']?></option> <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); $rows = mysql_num_rows($Recordset1); if($rows > 0) { mysql_data_seek($Recordset1, 0); $row_Recordset1 = mysql_fetch_assoc($Recordset1); } ?> </select> <input name="go_button2" type="button" disabled="disabled" id= "go_button2" style="width:30px; height:30px; font-size:18px; font-family:Verdana, Geneva, sans-serif" onclick="MM_jumpMenuGo('jumpMenu2','parent',0)" value=">" /> </p> <p> <select name="jumpMenuMotor" disabled="disabled" id="jumpMenuMotor" style="width:200px; height:30px; font-size:14px; font-family:Verdana, Geneva, sans-serif"> </select> <input name="go_button3" type="button" disabled="disabled" id= "go_button3" style="width:30px; height:30px; font-size:18px; font-family:Verdana, Geneva, sans-serif" onclick="MM_jumpMenuGo('jumpMenu3','parent',0)" value=">" /> </p> </form> </body> </html> <?php mysql_free_result($rsmarca); mysql_free_result($Recordset1); ?> boas taviroquai,, obrigado pela tua simpatia e ajuda, amanha irei experimentar a tua sugestão e depois dou.te novidades!! Abraço e boa noite!!
diesel10 Posted February 28, 2014 at 12:04 PM Author Report #547099 Posted February 28, 2014 at 12:04 PM (edited) boas taviroquai, muito obrigado pelo teu exemplo que me ajudou muito pois já consigo fazer o que pretendia, mas agora tenho uma dúvida. Existe alguma forma de quando eu selecciono a marca, ele possa passar logo para o campo de seleccionar os modelos(ao mesmo tempo que me deixa visível o valor escolhido em marca sem o deixar o espaço em branco)? É que eu quando selecciono a marca ele não faz o submit automaticamente(tive que introduzir um botão que faz submit). Abraço <select name="marca" style="width:300px; height:30px; font-size:18px; font-family:Verdana, Geneva, sans-serif"> <option value=""></option> <?php do { ?> <option value="<?php echo $row_Recordset1['CAR_BRANDS']?>"><?php echo $row_Recordset1['CAR_BRANDS']?></option> <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); $rows = mysql_num_rows($Recordset1); if($rows > 0) { mysql_data_seek($Recordset1, 0); $row_Recordset1 = mysql_fetch_assoc($Recordset1); } ?> </select> <input type="submit" name="botao1" class="btt" style="width:30px; height:30px; font-size:18px; font-family:Verdana, Geneva, sans-serif" value=">" /> </p> <p> <label class="selecionar">Selecionar o Modelo</label> <select name="modelo" style="width:300px; height:30px; font-size:18px; font-family:Verdana, Geneva, sans-serif"> <?php do { ?> <option value="<?php echo $row_Recordset2['MODEL_CAR']?>"><?php echo $row_Recordset2['MODEL_CAR']?></option> <?php } while ($row_Recordset2 = mysql_fetch_assoc($Recordset2)); $rows = mysql_num_rows($Recordset2); if($rows > 0) { mysql_data_seek($Recordset2, 0); $row_Recordset2 = mysql_fetch_assoc($Recordset2); } ?> </select> <input type="submit" class="btt" style="width:30px; height:30px; font-size:18px; font-family:Verdana, Geneva, sans-serif" value=">" /></p> Edited February 28, 2014 at 12:13 PM by diesel10
diesel10 Posted March 6, 2014 at 12:55 PM Author Report #547745 Posted March 6, 2014 at 12:55 PM (edited) Viva, Basicamente precisas de: Um formulário HTML para permitir o input do utilizador Ler os dados conforme o input do utilizador. Mostrar os resultados em HTML Exemplo super simples: <?php // Ler dados $marcas = array('volvo', 'renault'); $modelos = array(); $resultados = array(); // Não existem resultados... if (isset($_POST['marca'])) { $modelos = array('laguna'); // ler modelos da marca seleccionada $resultados = array(); // obter resultados, de uma base de dados ou XML, etc... } ?> <form method="post"> <label>Marca</label> <select name="marca"> <option value="volvo">Volvo</option> </select> <label>Modelo</label> <select name="modelo"></select> <input type="submit" value="Pesquisar" /> </form> <h2>Resultados</h2> <?php if (empty($resultados)) { ?> <p>Não existem resultados</p> <?php } else { ?> <ul> <?php foreach ($resultados as $item) { ?> <li><?php echo (string) $item; ?></li> <?php } ?> </ul> <?php } ?> Boas taviroquai, Só para te dizer mais uma vez que a tua ajuda foi-me preciosa, e desculpa-me a pergunta, existe alguma forma de passar o valor ID especifico de cada carro/modelo/motor seleccionado directamente para uma página de categorias, manter até a página de produtos dependentes da categoria seleccionada, através do meu button <input type="submit"> <?php // Ler dados $marcas = array($row_Recordset1['CAR_BRANDS']); $modelos = array(); $motores = array(); if (isset($_POST['marca'])) { $modelos = array('modelo'); // ler modelos da marca seleccionada $motores = array('motor'); // ler motores da marca e modelo seleccionada } ?> Edited March 6, 2014 at 12:56 PM by diesel10
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now