Скрипт за изчисление

globaluty

Registered
Здравейте,

целта ми е от 2 падащи менюта, както е направено долу в случая, да се извежда крайна цена, която да представлява произведението на стойността от първото меню по стойността от второто меню.
Как може да се направи, така че в реално време това да се изчислява, тоест още когато потребителят избере дадена стойност от някое меню, да му изчисли крайната цена.

Код:
<!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=windows-1251" />
<meta http-equiv="content-language" content="bg" /> 
</head>

<body>
 <form id="form2" name="form2" method="post" action="">
   <label>Брой
   <select name="select">
     <option>1</option>
     <option>2</option>
     <option>3</option>
     <option>4</option>
     <option>5</option>
   </select>
   </label>
 </form>		     
 <form id="form1" name="form1" method="post" action="">
   <label>Времетраене
     <select name="select2">
       <option>1 месец</option>
       <option>2 месеца</option>
       <option>3 месеца</option>
       <option>4 месеца</option>
       <option>5 месеца</option>
     </select>
   </label>
 </form>
 <p>Крайна цена: </p>
 
</body>
</html>

Благодаря предварително :)
 
<!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=windows-1251" />
<meta http-equiv="content-language" content="bg" />
</head>

<body>
<form id="form2" name="form2" method="post" action="">
<label>Брой
<select name="select">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</label>
</form>
<form id="form1" name="form1" method="post" action="">
<label>Времетраене
<select name="select2">
<option value="1">1 месец</option>
<option value="2">2 месеца</option>
<option value="3">3 месеца</option>
<option value="4">4 месеца</option>
<option value="5">5 месеца</option>
</select>
</label>
</form>
<p>Крайна цена: </p>
<?php
$s1 = $_POST['select'];
$s2 = $_POST['select2'];

echo $s1*$s2;

?>
</body>
</html>
 
Да ама не ...

Код:
<!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=windows-1251" />
<meta http-equiv="content-language" content="bg" /> 
</head>

<body>
 <form id="form2" name="form2" method="post">
   <label>Брой
   <select name="select">
     <option value="1">1</option>
     <option value="2">2</option>
     <option value="3">3</option>
     <option value="4">4</option>
     <option value="5">5</option>
      </select>
   </label>
 </form>		     
 <form id="form1" name="form1" method="post">
   <label>Времетраене
     <select name="select2">
       <option value="1">1 месец</option>
       <option value="2">2 месеца</option>
       <option value="3">3 месеца</option>
       <option value="4">4 месеца</option>
       <option value="5">5 месеца</option>
     </select>
   </label>
   <input type="submit" name="submit" value="Изчисли крайна цена" id="submit" />
 </form>
  <?php 
  
 $select = $_POST['select'];
 $select2 = $_POST['select2'];
 $result = $select * $select2; 
 ?>
 <p>Крайна цена: <?php echo $result; ?></p>

Каквото успях сам да направя, но тук умножава 0*$select2, защото винаги ми връща 0 като резултат. Ако заменя * с +, винаги извежда числото, което е избрано от select2 ???
 
Първо полетата са ти в две отделни форми? Така винаги ще имаш само едно изпратено поле, другото няма да се изпраща. Напарви ги в една форма.
 
Първо полетата са ти в две отделни форми? Така винаги ще имаш само едно изпратено поле, другото няма да се изпраща. Напарви ги в една форма.
 
Ами добави така винаги да ти е селектнат някакъв value за да не ти връща 0:

selected='selected'

<select name="select">
<option value="1" selected='selected'>1</option>
</select>
И дащо не си сложиш двата селекта в 1 форма ? Така едната не подава стойност на полето и то визирам първата защото нямаш submit в нея !
 
Мда, вече изчислява :)

А как да го направя, така че когато се изберат стойностите и се натисне "Изчисли" да се запазят избраните стойности от менютата, а да не се връщат на първта стойност (в случая '1' и '1 месец') ?
 
Може да се направи с jQuery когато се изберат директно да ти показва колко е цената, без да се презарежда страницата.
 

Back
Горе