PF2G Posted June 25, 2012 at 08:41 AM Report #465298 Posted June 25, 2012 at 08:41 AM Bom dia, eu estou a fazer um simulador de preços, onde o utilizador pode escolher o produto e em cima tem a altura e preço correspondentes; de seguida preenche mais uns campos e ao clicar no botao 'Calcular' será dado o preço final. A minha duvida é quando alterar o produto (que está num <select>) a altura e o preço mudarem... <?php $select_produtos="SELECT * FROM simulador WHERE link='".$clean_url[2]."'"; $produtos=mysql_query($select_produtos) or die(mysql_error()); $row_produtos=mysql_fetch_assoc($produtos); // liga os erros e a sua apresentação, comentar para desligar os erros ini_set('display_errors', 1); ini_set('error_reporting', E_ALL ^ E_NOTICE); // ficheiros necessários require_once 'admin/connection/database.php'; $produtos = mysql_query("SELECT * FROM produtos WHERE tipo_painel=1"); $linha = mysql_fetch_assoc($produtos); if(isset($_POST['quantidade'])) { $quantidade = $_POST['quantidade']; if (fmod($quantidade, 2.5)) { $quantidade = ceil($quantidade / 2.5) * 2.5; } $minimo = 3; switch($quantidade) { case ($quantidade < 30): $flag=1; $val_montagem_1 = $flag * 3.5 + 25; $montagem=$val_montagem_1; case ($quantidade > 29 && $quantidade < 50): $flag=1; $val_montagem_2 = $flag * 3.5; $montagem = $montagem + $val_montagem_2 + $minimo; case ($quantidade < 100): $flag=1; $val_montagem_3 = $flag * 0.75; $montagem= $montagem + $val_montagem_3 ; case ($quantidade >= 100): $flag=1; $val_montagem_4 = $flag * 0.5 ; $montagem= $montagem + $val_montagem_4 ; } } else { $quantidade=0; } $sapatas = $_POST['sapatas']; $fiadas = $_POST['fiadas']; $distancia = $_POST['distancia']; if(isset($_POST['distancia'])) { if ($distancia < 0) { $distancia = abs($distancia); } if ($quantidade < 250) { $transporte = $distancia * 1.5 + 75; } } $exec_sapatas = ((15 * $sapatas)/2.5); $exec_fiadas = ((15 * $fiadas)/2.5); $rede =$rede + $exec_sapatas + $exec_fiadas; if ($quantidade == 0) { $transporte=0; $quantidade=1; $total_metro = ($total / $quantidade)*0; $total = (($rede+$montagem) * $quantidade + $transporte)* 0; $flag_1=0; } elseif ($quantidade > 0) { $total = (($rede+$montagem) * $quantidade + $transporte); $total_metro = $total / $quantidade ; } $total=number_format ($total,2,',', '.'); $total_metro=number_format ($total_metro,2,',', '.'); ?> <!------------------------------------------------------------------------------------> <?php $select_prods="SELECT * FROM produtos WHERE tipo_painel=1"; $prods=mysql_query($select_prods) or die(mysql_error()); $row_prods=mysql_fetch_assoc($prods); $select_nodes="SELECT * FROM node WHERE id='".$row_prods['id_produto']."'"; $nodes=mysql_query($select_nodes) or die(mysql_error()); $row_nodes=mysql_fetch_assoc($nodes); ?> <table> <div> <form name="form" id="form" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <table style="width:454px"> <tr> <td class="descricao">ALTURA:</td> <td><input style="margin-left:-100px;" class="valor" type="text" readonly="readonly" value="<?php echo $row_prods['altura'].' m'; ?>"/></td> </tr> <tr> <td class="descricao">PREÇO:</td> <td><input style="margin-left:-100px;" class="valor" type="text" readonly="readonly" value="<?php echo abs($row_prods['preco']).',00 €'; ?>"/></td> </tr> <tr> <td style="width: 454px"> <select style="width:460px; text-align:left;" name="id_produtos" class="valor"> <?php do{ ?> <option value=""> <?php echo $row_nodes['titulo']; ?> </option> <?php } while ($row_prods=mysql_fetch_assoc($prods)); ?> </select> </td> </tr> <tr> <td style="height:30px; width: 350px;"></td> </tr> </table> <table> <tr> <td class="descricao" style="width: 350px">QUANTIDADE DE VEDAÇÃO ( MULTIPLOS DE 2,5 M.L.)</td> <td> <input style="width:100px" type="text" name="quantidade" value="<?php echo $quantidade?>" class="valor"></td> </tr> <tr> <td class="descricao" style="width: 350px">EXECUÇÃO DE SAPATAS DE 2,5 EM 2,5M ?</td> <td> <select style="width:100%" name="sapatas" class="valor"> <option value="" <?php if ($sapatas === "") echo "selected"; ?>>Opção:</option> <option value="1" <?php if ($sapatas === "1") echo "selected"; ?>>SIM</option> <option value="0" <?php if ($sapatas === "0") echo "selected"; ?>>NÃO</option> </select> </td> </tr> <tr> <td class="descricao" style="width: 350px">BRAÇO A 45º COM 3 FIADAS DE FARPADO?</td> <td> <select style="width:100%" name="fiadas" class="valor"> <option value="" <?php if ($fiadas === "") echo "selected"; ?>>Opção:</option> <option value="1"<?php if ($fiadas === "1") echo "selected"; ?>>SIM</option> <option value="0"<?php if ($fiadas === "0") echo "selected"; ?>>NÃO</option> </select> </td> </tr> <tr> <td class="descricao" style="width: 350px">DISTÂNCIA DE LISBOA</td> <td> <input style="width:100px" type="text" name="distancia" value="<?php echo $distancia?>" class="valor"></td> </tr> <tr> <td style="height:30px; width: 350px;"></td> </tr> </table> <table> <tr> <td class="descricao">PREÇO POR M.L.:</td> <td style="width:100px; border:1px solid #A5ACB2;" class="valor"><?php echo $total_metro .' €';?></td> <!--<td style="width:100px; border:1px solid #A5ACB2;" class="valor"><?php echo $rede;?>REDE </td> <td style="width:100px; border:1px solid #A5ACB2;" class="valor"><?php echo $montagem;?> MONT </td> <td style="width:100px; border:1px solid #A5ACB2;" class="valor"><?php echo $transporte;?> TRANSP</td> </tr>--> <tr> <td class="descricao">VALOR TOTAL:</td> <td style="width:100px; border:1px solid #A5ACB2;" class="valor"><?php echo $total .' €';?></td> </tr> </table> <table> <tr> <td style="height:30px"></td> </tr> <tr> <td style="padding-left:150px"><input type="submit" value="Calcular" /></td> <td style="padding-left:50px"><input type="submit" value="Imprimir" onclick="window.print()" /></td> </tr> <tr> <td></td> </table> </form> </div> </table>
pikax Posted June 25, 2012 at 08:46 AM Report #465300 Posted June 25, 2012 at 08:46 AM faz em javascript, escreve uma funcao que mude a altura e o preco, usa o evento onchange Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
PF2G Posted June 25, 2012 at 08:55 AM Author Report #465304 Posted June 25, 2012 at 08:55 AM Será que me podes ajudar é que sei fazer isso mas é abrir novas pagina na net. E está-me a confundir um bocado, a maneira como vou alterar outras caixas de texto.
pikax Posted June 25, 2012 at 09:02 AM Report #465308 Posted June 25, 2012 at 09:02 AM ve se isto te ajuda http://www.webmasterworld.com/javascript/3097091.htm http://www.htmlcodetutorial.com/forms/_INPUT_onChange.html Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
PF2G Posted June 25, 2012 at 09:47 AM Author Report #465321 Posted June 25, 2012 at 09:47 AM (edited) Não ajudou muito, acrescentar JavaScript confunde-me um bocado. Não será melhor apanhar este id: <select style="width:460px; text-align:left;" name="id_produtos" class="valor"> <?php do{ ?> <option value="<?php echo $row_prods['id_tabela']; ?>"> <?php echo $row_prods['id_tabela'].' - '.$row_nodes1['titulo']; ?> </option> <?php } while ($row_prods=mysql_fetch_assoc($prods)); ?> </select> E com um query ele altera a textbox dependente do id_tabela.... Será possivel assim? Edited June 25, 2012 at 09:48 AM by PF2G
pikax Posted June 25, 2012 at 10:24 AM Report #465324 Posted June 25, 2012 at 10:24 AM Mas nao queres que se alterares o produto ele mude o preco e a altura? Se quiseres que ele mude sem fazer refresh 'a pagina, tens que fazer com javascript com AJAX, claro que fica mais complicado. Podes tambem fazer e' quando muda o produto, recarregas a pagina(envias o ID do produto com um get) e fazes as alteracoes com PHP Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
PF2G Posted June 25, 2012 at 10:43 AM Author Report #465326 Posted June 25, 2012 at 10:43 AM Ok, vou optar pelo onchange, talvez seja mais prático. Obrigado, pikax
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