Калькулятор

Статус
Закрыто для дальнейших ответов.

inviter

New Member
Регистрация
05.08.2011
Сообщения
4
Не знал в какой раздел лучше всего написать, написал сюда :dry:
Собственно сабж: требуется сделать страничку на сайте где будет находится калькулятор. Выглядеть это должно приблизительно так

То есть пользователь заполняет поля, нажимает на кнопку "рассчитать стоимость" и получает результат.
Как именно лучше всего реализовать этот алгоритм? Думал написать маленькую exe'шку в которой будет собственно сам калькулятор, которая будет выводить резалт в отдельный файл.
Но тогда у меня возникает вопрос: Как со страницы сайта отправить данные пользователя программе и как сделать возврат результата?
Спасибо!
 

Serg@NT

Well-Known Member
Регистрация
20.02.2010
Сообщения
506
Калькулятор пишется на javascript, результат считает браузер на стороне клиента при нажатии на кнопку мгновенно.
Но при этом пользователь будет видеть алгоритм расчёта. Если вы этого не хотите (например, результат расчёта идёт сразу в договор и критично, чтоб алгоритм не взломали), то делаете отдельную страничку с алгоритмом, обращаетесь к ней по AJAX, либо выводите результат на новой странице.
А если результат считается справочно для клинта, обычно делается в javascript.
 

inviter

New Member
Регистрация
05.08.2011
Сообщения
4
Калькулятор пишется на javascript, результат считает браузер на стороне клиента при нажатии на кнопку мгновенно.
Но при этом пользователь будет видеть алгоритм расчёта. Если вы этого не хотите (например, результат расчёта идёт сразу в договор и критично, чтоб алгоритм не взломали), то делаете отдельную страничку с алгоритмом, обращаетесь к ней по AJAX, либо выводите результат на новой странице.
А если результат считается справочно для клинта, обычно делается в javascript.
Тогда элементарный пример:
допустим у меня есть выпадающая менюшка

И кнопка

Код:
<html> 
<head> 
<title>Personal INFO</title> 
</head> 
<body> 
Выбирите вашу группу:<br />
<select name="group">
<option value="ТС массовых моделей">ТС массовых моделей</option>
<option value="ТС прочих марок/моделей или групп">ТС прочих марок/моделей или групп</option>
</select>:<br />
<a href=test.php?id=1>Клац-клац</a>
if (isset($_GET['id'])) { <здесь скрипт нашего калькулятора> }
</body>
Как сделать чтобы ссылка выводила резалт на этой же странице?
 

Serg@NT

Well-Known Member
Регистрация
20.02.2010
Сообщения
506
Как-то так:
Код:
<html> 
<head> 
<title>Personal INFO</title> 
<script type="text/javascript">
function func() {
 document.write(document.getElementById("sel").value);
}
</script>
</head> 
<body> 
Выбирите вашу группу:<br />
<select name="group" id="sel">
<option value="ТС массовых моделей">ТС массовых моделей</option>
<option value="ТС прочих марок/моделей или групп">ТС прочих марок/моделей или групп</option>
</select>:<br />
<a href="javascript: func();">Клац-клац</a>
if (isset($_GET['id'])) { <здесь скрипт нашего калькулятора> }
</body>
</html>
 

inviter

New Member
Регистрация
05.08.2011
Сообщения
4
Спасибо!

Возник еще вопрос. Мы передаем данные из формы через $_POST со страницы test2.php на страницу action.php.
Код:
<html> 
<head> 
<title>Test page!</title> 
</head> 
<body> 

Выбирите вашу группу:<br/>
<select name="group">
<option value="ТС массовых моделей">ТС массовых моделей</option>
<option value="ТС прочих марок/моделей или групп">ТС прочих марок/моделей или групп</option>
</select>:<br/>
<form action="action.php" name=formName method="post">
Страховая сумма(СС):<input type="text" size="12" maxlength="12" name="CC">:<br/>
Расчетная страховая сумма(РСС):<input type="text" size="12" maxlength="36" name="PCC">:<br/>
Тарифы для дострахования(ТДУ):<input type="text" size="12" maxlength="36" name="TDU">:<br/>
Минимальные базовые страховые премии(МБП):<input type="text" size="12" maxlength="36" name="MBP">:<br/>
Коэффициэнт возраст-стаж(КВС):<input type="text" size="12" maxlength="36" name="KVS">:<br/>
Коэффициэнт по франшизе(КФ):<input type="text" size="12" maxlength="36" name="KF">:<br/>
Коэффициэнт за ремонт на СТОА(КС):<input type="text" size="12" maxlength="36" name="KS">:<br/>
</form>
<input type='submit' value='Рассчитать стоимость'>
<div class="inputWrapper"><label for="">Стоимость, руб.</label><input id="Premium" dir="rtl" readonly="" type="text" autocomplete="off" value="0" name=""></div>
</body>
</html>
Код:
<?php
  $php_CC = $_POST['CC'];
  $php_PCC = $_POST['PCC'];
  $php_TDU = $_POST['TDU'];
  $php_MBP = $_POST['MBP'];
  $php_KVS = $_POST['KVS'];
  $php_KF = $_POST['KF'];
  $php_KS = $_POST['KS'];  
if (0<($php_CC-$php_PCC)) {
$php_IPU = (((($php_CC - $php_PCC)*$php_TDU)+$php_MBP)*$php_KVS*$php_KF*$php_KS);}
?>
Код test2.php и action.php соответственно. Собственно вопрос: как передать переменную $php_IPU обратно из action.php на test2.php?
 

Serg@NT

Well-Known Member
Регистрация
20.02.2010
Сообщения
506
Вы можете отправлять данные на эту же страницу, а не на action.php
Код:
<html> 
<head> 
<title>Test page!</title> 
</head> 
<body> 
<?php
if(isset($_POST)) {
  $php_CC = $_POST['CC'];
  $php_PCC = $_POST['PCC'];
  $php_TDU = $_POST['TDU'];
  $php_MBP = $_POST['MBP'];
  $php_KVS = $_POST['KVS'];
  $php_KF = $_POST['KF'];
  $php_KS = $_POST['KS'];  
if (0<($php_CC-$php_PCC)) {
$php_IPU = (((($php_CC - $php_PCC)*$php_TDU)+$php_MBP)*$php_KVS*$php_KF*$php_KS);}
}
?>
Выбирите вашу группу:<br/>
<select name="group">
<option value="ТС массовых моделей">ТС массовых моделей</option>
<option value="ТС прочих марок/моделей или групп">ТС прочих марок/моделей или групп</option>
</select>:<br/>
<form action="test2.php" name=formName method="post">
Страховая сумма(СС):<input type="text" size="12" maxlength="12" name="CC">:<br/>
Расчетная страховая сумма(РСС):<input type="text" size="12" maxlength="36" name="PCC">:<br/>
Тарифы для дострахования(ТДУ):<input type="text" size="12" maxlength="36" name="TDU">:<br/>
Минимальные базовые страховые премии(МБП):<input type="text" size="12" maxlength="36" name="MBP">:<br/>
Коэффициэнт возраст-стаж(КВС):<input type="text" size="12" maxlength="36" name="KVS">:<br/>
Коэффициэнт по франшизе(КФ):<input type="text" size="12" maxlength="36" name="KF">:<br/>
Коэффициэнт за ремонт на СТОА(КС):<input type="text" size="12" maxlength="36" name="KS">:<br/>
</form>
<input type='submit' value='Рассчитать стоимость'>
<div class="inputWrapper"><label for="">Стоимость, руб.</label><input id="Premium" dir="rtl" readonly="" type="text" autocomplete="off" value="<?= $php_IPU ?>" name=""></div>
</body>
</html>
Результат выводится в поле "Стоимость, руб." через <?= $php_IPU ?>. Также для удобства пользователя вы можете добавить в остальные поля соответствующие значения value="<?= $php_... ?>". Тогда после отправки формы пользователь будет видеть все данные, которые он ввёл и результат. Если что-то захочет изменить и пересчитать, не надо будет вводить всё по новой.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ