Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2013, 01:10   #1
strangegirlXX
Пользователь
 
Регистрация: 15.04.2012
Сообщений: 16
Вопрос Обработчик формы + Javascript

Помогите, пожалуйста, исправить проблему!

Задача: у меня есть форма c checkbox (школьные предметы). Пользователь выбирает нужные предметы и для них указывает числа (в задаче это максимальные баллы по предметам). Далее обработчик формы. Из выбранных параметров мы строим таблицу (название предмета, балл (текстовое поле ввода), максимальный балл (подставляем из формы)) и в строчке итого - сумма баллов.

PHP код:
<form name="fv">
<table border=1>
<tr>
<td><b>Вид учебной деятельности:</b></td>
<td><b>Полученные баллы</b></td>
<td><b>Максимальные баллы</b></td>
</tr>
<?php
if (isset($_POST[chk3]) && $_POST[chk3]=='yes') {  // если предмет выбран
echo '<tr>';
echo 
'<td><b>Алгебра</b></td>';
echo 
'<td><input type="text" name="field_a" onInput="change(fv)"><br></td>';  // поле для ввода баллов
echo '<td>'.$_POST['lessons'].'</td>';                     // максимальный бал
echo '</tr>';
}

if (isset(
$_POST[chk4]) && $_POST[chk4]=='yes') {
echo 
'<tr>';
echo 
'<td><b>Геометрия</b></td>';
echo 
'<td><input type="text" name="field_b" onInput="change(fv)"><br></td>';
echo 
'<td>'.$_POST['lessons_2'].'</td>';
echo 
'</tr>';
}
?>
<tr>
<td><b>Итого:</b></td>
<td><input type="text" name="result"><br></td>
<td><b>60</b></td>
</tr>
</table>
</form>

<script type="text/javascript">
function change(obj) {
// на единицу домножаем, чтобы строковое значение перевести в числовое, иначе результатом будет конкатенация а не сумма

var a = 1*obj.field_a.value;
var b = 1*obj.field_b.value;
obj.result.value = a + b;

}
</script>
Проблема: суммирование не работает, если выбран только один предмет, а не 2. Но я не знаю, как исправить.

Последний раз редактировалось strangegirlXX; 08.04.2013 в 01:13.
strangegirlXX вне форума Ответить с цитированием
Старый 08.04.2013, 01:45   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Можно по ветке else вывести: <input type="hidden" name="field_b" value="0">
Arigato вне форума Ответить с цитированием
Старый 08.04.2013, 11:00   #3
strangegirlXX
Пользователь
 
Регистрация: 15.04.2012
Сообщений: 16
По умолчанию

спасибо, всё получилось!
strangegirlXX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
javascript формы в WebBrowser Witaliy Общие вопросы Delphi 5 16.07.2012 20:32
формы & javascript Nefedev JavaScript, Ajax 3 25.12.2010 22:30
обработчик события onClose для формы созданной в Run-Time tonatas Общие вопросы Delphi 3 13.08.2010 21:46
компонент и обработчик сообщений формы Пепел Феникса Компоненты Delphi 2 13.05.2009 12:18