Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сумма значений
Форумы портала PHP.SU » PHP » Программирование на PHP » Сумма значений

Страниц (1): [1]
 

1. Acuna - 02 Октября, 2009 - 23:18:22 - перейти к сообщению
Здравствуйте, уважаемые разработчики! Улыбка

У меня есть следующий код:

CODE (text):
скопировать код в буфер обмена
  1. <input type="radio" value="1" name="answer_1">
  2. <input type="radio" value="2" name="answer_1">
  3. <input type="radio" value="3" name="answer_1">
  4.  
  5. <input type="radio" value="1" name="answer_2">
  6. <input type="radio" value="2" name="answer_2">
  7. <input type="radio" value="3" name="answer_2">

Вот у меня вопрос: например, пользователь выбрал в answer_1 значение 2, а в answer_2 - значение 3. А как можно посчитать сумму выбранных значений value (в данном случае должно получится 5). Просто таких пунктов очень много...
Вроде на пальцах объяснил... Закатив глазки

Заранее благодарен!
2. -=1100=- - 03 Октября, 2009 - 01:40:25 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <form action='' method='POST'>
  2.  
  3. <input type="radio" value="1" name="answer_1">-1<br>
  4.  
  5. <input type="radio" value="2" name="answer_1">-2<br>
  6.  
  7. <input type="radio" value="3" name="answer_1">-3<br>
  8.  
  9. <br><br>
  10.  
  11. <input type="radio" value="1" name="answer_2">-1<br>
  12.  
  13. <input type="radio" value="2" name="answer_2">-2<br>
  14.  
  15. <input type="radio" value="3" name="answer_2">-3<br>
  16.  
  17. <input type='submit' />
  18.  
  19. </form>
  20.  
  21. <?
  22.  
  23. if(!empty($_POST['answer_1']) && !empty($_POST['answer_2']) ){
  24.  
  25. $answer1=$_POST['answer_1'];
  26.  
  27. $answer2=$_POST['answer_2'];
  28.  
  29. $summa=$answer1+$answer2;
  30.  
  31. echo($summa);
  32.  
  33. }
3. Acuna - 03 Октября, 2009 - 12:40:49 - перейти к сообщению
К сожалению,


не получится, т. к. как я написал выше, пунктов answer ну ооочень много, и их невозможно так просто сложить.

Вообще-то я пишу модуль тестов. практически написал, а проблема осталась только за этим - чтобы вывести финальный результат... :/
4. RomAndry - 03 Октября, 2009 - 13:24:05 - перейти к сообщению
сделать обход $_POST в цикле
5. Acuna - 03 Октября, 2009 - 14:11:03 - перейти к сообщению
Оп! А... извиняюсь за такой вопрос... а это как? Примерно...
6. EuGen - 03 Октября, 2009 - 14:36:09 - перейти к сообщению
http://php.su/learnphp/cs/?cycles
7. movEAX - 03 Октября, 2009 - 14:49:36 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. // в случае если POST будет содержать иные данные помимо ответов
  2.  
  3. $arrAnswer =array_flip($_POST);
  4.  
  5. $arrAnswer = array_flip(preg_grep('!answer_\d!',$arrAnswer));
  6.  
  7.  
  8.  
  9. foreach($arrAnswer as $intAnswer){
  10.  $totalAnswers +=$intAnswer;
  11. }
  12.  
  13. print $totalAnswers;


И еще вариант:

PHP:
скопировать код в буфер обмена
  1. // в случае если POST будет содержать исключительно ответы
  2.  
  3.  
  4. foreach($_POST as $intAnswer){
  5.  $totalAnswers +=$intAnswer;
  6. }
  7.  
  8. print $totalAnswers;


ps: работспособность не проверял, но по идее работать должно.
8. Acuna - 03 Октября, 2009 - 19:11:53 - перейти к сообщению
Во! Огромное спасибо! Подмигивание

!!! PHP.SU ЛУЧШИЙ !!!

!!! I LOVE PHP !!!

 

Powered by ExBB FM 1.0 RC1