php POST суммирование - PullRequest
       15

php POST суммирование

0 голосов
/ 20 января 2010

Я отправляю 5 разных данных в файл php методом POST. данные все целые числа. Я хочу сложить все эти целочисленные значения, чтобы получить сумму.

    $.post(
        "user_submit.php", 
        {score: $('#ques'+qn).find('input[name=vote]:checked').val() }, 
        function(data){
            $("#ques"+qn).hide();
            ++qn;
            $("#ques"+qn).show();
        });
    });

в php-файле:

$score = $_POST['score'];
$total = $total + $score;
echo $total;

это не суммирование значений. что я делаю не так?

Ответы [ 3 ]

2 голосов
/ 20 января 2010

Если бы вы были print_r($_POST['score']), вы бы увидели, что это на самом деле массив, а не одно значение.Попробуйте что-то вроде $total += array_sum($_POST['score']);.

1 голос
/ 20 января 2010

$. Post из jQuery отправляет JSON-кодированную строку на сервер; вы на самом деле отправляете массив javascript, который нужно обработать сначала с помощью json_decode, а затем обработать вторым.

Как предлагали другие авторы, выполнение print_r($_POST['score']) показало бы это очень четко.

0 голосов
/ 20 января 2010

bkuhns находится на правильном пути. ваш счет не собирается быть любым массивом, хотя я не думаю. AFIK $ .searialize не является рекурсивным, поэтому вы получите оценку 'Object'. попробуйте использовать это для data.score ключа вашего $ .post:

function(){
  var score = new Array(); 
  $('#ques'+qn).find('input[name=vote]:checked').each(function(){
   score.push($(this).val());
  });
  return score.join(',');
}

и в php:

$scores = explode(',',$_POST['score']);

, затем цикл $scores, добавляющий к $total. или вы можете использовать array_sum, как подсказывает bkuhns.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...