php POST toplama

3 Cevap

i POST yöntemi ile bir php dosyasına genelinde 5 farklı veri yolluyorum. veriler tüm tamsayılar olduğunu. i bir toplam üretmek için bütün bu tamsayı değerleri eklemek istiyorum.

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

php dosyasında:

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

o değerleri ekleyerek değildir. ben yanlış ne yapıyorum?

3 Cevap

Eğer print_r($_POST['score']) olsaydı, bunun aslında bir dizi, tek bir değer olduğunu görürdünüz. Bunun yerine, $total += array_sum($_POST['score']); gibi bir şey deneyin.

. $ JQuery sunucuya bir json kodlanmış dizesi gönderir dan gönderebilir; aslında ilk json_decode yoluyla ele, ve sonra ikinci manipüle edilmesi gereken bir javascript dizi göndererek ediyoruz.

Diğer posterleri önerildiği gibi, bir print_r($_POST['score']) bunu çok açık göstermiştir olurdu yapıyorsa.

bkuhns doğru yolda olduğunu. puanınız i sanmıyorum ama gto herhangi bir dizi olarak gitmiyorum. Afik $. Searialize yüzden sen 'Object' bir puan almak için gidiyor recusive değildir. . senin $ yazının data.score anahtar için bu kullanmayı deneyin:

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

ve php:

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

ve $scores eklenmesi döngü $total. ya bkuhns gibi array_sum kullanabilirsiniz anlaşılacağı olabilir.