PF2G Posted June 28, 2012 at 09:35 AM Report Share #466096 Posted June 28, 2012 at 09:35 AM Bom dia eu estou a trabalhar neste simulador onde tenho o forumlario num .php e os calculos noutro .php estou a chamar o .php dos caluclos, mas sempre que clico em calcular diz-me que não encontra o ficheiro formulário <html> <form name="form" id="form" action="../save.php" method="post"> <input type="hidden" name="action" value="calc_panel" /> <table style="width:454px;"> <tr> <td class="descricao" style="width: 350px; height: 18px;">TIPO DE PAINEL E RESPECTIVA ALTURA:</td> </tr> <tr> <td style="width: 454px"> (....) </html> save.php (onde estao as action): case 'calc_panel': 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 < 150): $flag=1; $val_montagem_4 = $flag * 0.5 ; $montagem= $montagem + $val_montagem_4 ; case ($quantidade < 300): $flag=1; $val_montagem_5 = $flag * 0.5; $montagem=$montagem + $val_montagem_5; case ($quantidade < 500): $flag=1; $val_montagem_6 = $flag * 0.5; $montagem= $montagem + $val_montagem_6; case($quantidade < 1000): $flag=1; $val_montagem_7 = $flag * 0.5; $montagem=$montagem + $val_montagem_7 ; } } 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; } else if ($quantidade > 0) { $total = (($rede+$montagem) * $quantidade + $transporte); $total_metro = $total / $quantidade ; } $total=number_format ($total,2,',', '.'); $total_metro=number_format ($total_metro,2,',', '.'); break; Alguem me consegue ajudar? Obrigado, PF2G Link to comment Share on other sites More sharing options...
yoda Posted June 28, 2012 at 09:41 AM Report Share #466100 Posted June 28, 2012 at 09:41 AM <form name="form" id="form" action="save.php" method="post"> before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
PF2G Posted June 28, 2012 at 09:51 AM Author Report Share #466103 Posted June 28, 2012 at 09:51 AM dessa maneira dá erro numa variável no save.php Eu estou a tentar usar o JQuery.Post. Será que me podes ajudar? Estou a tentar entender, mas é um bocado complicado. Obrigado, PF2G Link to comment Share on other sites More sharing options...
MASNathan Posted June 28, 2012 at 09:58 AM Report Share #466104 Posted June 28, 2012 at 09:58 AM 1 - O caminho do ficheiro tem de ser o correcto, de outra forma não serve de nada 2 - Qual é o erro que te dá 3 - A informação que nos disponibilizas-te não é a suficiente para te ajudar-mos (tal como em todos os teus outros posts) Link to comment Share on other sites More sharing options...
PF2G Posted June 28, 2012 at 10:11 AM Author Report Share #466106 Posted June 28, 2012 at 10:11 AM (edited) Não me da erro nenhum, agora. Mas sempre que clico em calcular é-me redireccionado para o index 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 < 150): $flag=1; $val_montagem_4 = $flag * 0.5 ; $montagem= $montagem + $val_montagem_4 ; case ($quantidade < 300): $flag=1; $val_montagem_5 = $flag * 0.5; $montagem=$montagem + $val_montagem_5; case ($quantidade < 500): $flag=1; $val_montagem_6 = $flag * 0.5; $montagem= $montagem + $val_montagem_6; case($quantidade < 1000): $flag=1; $val_montagem_7 = $flag * 0.5; $montagem=$montagem + $val_montagem_7 ; } } 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; Este é o codigo que estou a utilizar no .php do formulário: <script> $("#form").submit( function () { $.ajax({ type: "POST", dataType: "php", cache: false, url: "../save.php", success: function(data){ $("#results").php(data); } });return false; }); </script> <?php // 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); //vizualizar variaveis //echo '<pre>';print_r($_POST);//print_r($_SESSION);print_r($_SERVER); $id_produtos = $_POST['id_produto']; $produtos = mysql_query("SELECT preco FROM produtos WHERE id_produto = '$id_produtos'") or die(mysql_error()); $linha = mysql_fetch_assoc($produtos); $rede = $linha['preco']; /*****************************FORUMLÁRIO PAINEIS**********************************/ ?> <div style="padding: 0 0 0 450px;"> <table> <div> <form name="form" id="form" action="save.php" method="post"> <input type="hidden" name="action" value="calc_panel" /> <table style="width:454px;"> <tr> <td class="descricao" style="width: 350px; height: 18px;">TIPO DE PAINEL E RESPECTIVA ALTURA:</td> </tr> <tr> <td style="width: 454px"> <select style="width:460px; text-align:left;" name="id_produtos" class="valor"> (...) Edited June 28, 2012 at 10:23 AM by PF2G Link to comment Share on other sites More sharing options...
MASNathan Posted June 28, 2012 at 10:28 AM Report Share #466110 Posted June 28, 2012 at 10:28 AM <script> $("#form").submit( function () { $.ajax({ type: "POST", dataType: "php", cache: false, url: "../save.php", <-------ESTÁ ERRADO success: function(data){ $("#results").php(data); } });return false; }); </script> <form name="form" id="form" action="save.php" method="post"> <------TIRA O ACTION Link to comment Share on other sites More sharing options...
PF2G Posted June 28, 2012 at 10:34 AM Author Report Share #466114 Posted June 28, 2012 at 10:34 AM Parece estar lá perto...agora eu clico em calcular e faz refresh, apagando todos os valores: FORMULÁRIO jquery <script> $("#form").submit( function () { $.ajax({ type: "POST", dataType: "php", cache: false, url: "../save", success: success; } });return false; }); </script> <?php // 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); //vizualizar variaveis //echo '<pre>';print_r($_POST);//print_r($_SESSION);print_r($_SERVER); $id_produtos = $_POST['id_produto']; $produtos = mysql_query("SELECT preco FROM produtos WHERE id_produto = '$id_produtos'") or die(mysql_error()); $linha = mysql_fetch_assoc($produtos); $rede = $linha['preco']; /*****************************FORUMLÁRIO PAINEIS**********************************/ ?> <div style="padding: 0 0 0 450px;"> <table> <div> <form name="form" id="form" method="post"> <input type="hidden" name="action" value="calc_panel" /> <table style="width:454px;"> <tr> <td class="descricao" style="width: 350px; height: 18px;">TIPO DE PAINEL E RESPECTIVA ALTURA:</td> </tr> <tr> <td style="width: 454px"> <select style="width:460px; text-align:left;" name="id_produtos" class="valor"> <?php $produtos = mysql_query("SELECT * FROM produtos WHERE tipo_painel=1") or die(mysql_error()); $linha = mysql_fetch_assoc($produtos); do{ ?> <option value="<?php echo $linha['id_produto'] ?>"> <?php echo $linha['nome_produto'].' - '. $linha['altura'].' m'; ?> </option> <?php }while($linha = mysql_fetch_assoc($produtos)); ?> </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> </tr> </table> </form> </div> </table> </div> save.php case 'calc_panel': 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 < 150): $flag=1; $val_montagem_4 = $flag * 0.5 ; $montagem= $montagem + $val_montagem_4 ; case ($quantidade < 300): $flag=1; $val_montagem_5 = $flag * 0.5; $montagem=$montagem + $val_montagem_5; case ($quantidade < 500): $flag=1; $val_montagem_6 = $flag * 0.5; $montagem= $montagem + $val_montagem_6; case($quantidade < 1000): $flag=1; $val_montagem_7 = $flag * 0.5; $montagem=$montagem + $val_montagem_7 ; } } 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; } else if ($quantidade > 0) { $total = (($rede+$montagem) * $quantidade + $transporte); $total_metro = $total / $quantidade ; } $total=number_format ($total,2,',', '.'); $total_metro=number_format ($total_metro,2,',', '.'); break; Link to comment Share on other sites More sharing options...
MASNathan Posted June 28, 2012 at 10:56 AM Report Share #466121 Posted June 28, 2012 at 10:56 AM url: "../save", deveria ficar url: "save.php", que te parece? Link to comment Share on other sites More sharing options...
PF2G Posted June 28, 2012 at 11:02 AM Author Report Share #466124 Posted June 28, 2012 at 11:02 AM (edited) mas o save.php esta numa pasta atras, não ha problema? EDIT: acontece a mesma coisa, apaga-me os valores todos, nem chega a fazer os cálculos sequer. Edited June 28, 2012 at 11:04 AM by PF2G Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 28, 2012 at 11:09 AM Report Share #466125 Posted June 28, 2012 at 11:09 AM o que é feito do load() ??? <script> $("#form").submit( function () { $("#results").load('../save.php'); return false; }); </script> simples e direto ... agora ... se não aparece nada depois disto é porque o script save.php não está a responder nada IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
PF2G Posted June 28, 2012 at 11:15 AM Author Report Share #466126 Posted June 28, 2012 at 11:15 AM tenho de por o action, certo? <form name="form" id="form" action="calc_panel" method="post"> para ele saber que case há-de usar case 'calc_panel': O que me esta a acontecer é: eu clicar em calcular e redireciona-me para o index Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 28, 2012 at 11:34 AM Report Share #466132 Posted June 28, 2012 at 11:34 AM mas que raio de ficheiro se encontra o javascript ?? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
PF2G Posted June 28, 2012 at 11:56 AM Author Report Share #466137 Posted June 28, 2012 at 11:56 AM (edited) Ja esta +/- resolvido. Em vez passar os calculos por um ficheiro a parte, pus tudo no mesmo. Só que agora num simulador só faz cálculos a um produto, se selccionar outros produtos ele calcula o mesmo, estou a tentar o selected, mas sem sucesso: <?php // 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); $id_produtos = $_POST['id_produto']; $produtos = mysql_query("SELECT preco FROM produtos WHERE id_produto = '$id_produtos'"); $linha = mysql_fetch_assoc($produtos); $rede = $linha['preco']; <div style="padding: 0 0 0 450px;"> <table> <div> <form name="form" id="form" action="" method="post"> <table style="width:454px;"> <tr> <td class="descricao" style="width: 350px; height: 18px;">TIPO DE PAINEL E RESPECTIVA ALTURA:</td> </tr> <tr> <td style="width: 454px"> <select style="width:460px; text-align:left;" name="id_produtos" class="valor"> <?php $all_produtos = mysql_query("SELECT * FROM produtos WHERE tipo_painel=1") or die(mysql_error()); $all_linha = mysql_fetch_assoc($all_produtos); /* $prod_id=mysql_query("SELECT * FROM produtos WHERE id_produto='".$all_linha['id_produto']."'") or die (mysql_error()); $prod=mysql_fetch_assoc($prod_id); */ do{ ?> <option value="<?php echo $all_linha['id_produto'] ?>" <?php if($all_linha['id_produto']){echo 'selected="selected"';} ?>> <?php echo $all_linha['nome_produto'].' - '. $all_linha['altura'].' m'; ?> </option> <?php }while($all_linha = mysql_fetch_assoc($all_produtos)); ?> </select> Edited June 28, 2012 at 11:57 AM by PF2G Link to comment Share on other sites More sharing options...
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