Jump to content

Alterar info de acordo com produto seleccionado


Recommended Posts

Posted

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>
Posted

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."

Posted

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.

Posted

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."

Posted (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 by PF2G
Posted

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."

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
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.