PHP AJAX ile ilişkisel dizi Passing

3 Cevap php

AJAX ile bir PHP komut dosyası bu geçmesine çalışıyorum:

  var answers={};
  for (x=0; x< allAnswers.length; x++)
   {
       answers.x=new Array();
       answers.x['id']==allAnswers[x]['id'];
       answers.x['val']=$("#field_" + x).val();
   }

   var data={};
   data.id=questions[qId]['id'];
   data['answers']=answers;

   $.post('index.php',data);

PHP print_r($_POST) için ayarlanır ve bu çıkış olduğunu:

answers [object Object]

id       3

Ne yanlış yaptım ben?

Düzenleme: diziler kullanmak için kod değiştirme, yani:

  var answers=new Array();
   for (x=0; x< allAnswers.length; x++)
   {
       answers[x]=new Array();
       answers[x]['id']=allAnswers[x]['id'];
       answers[x]['val']=$("#field_" + x).val();
   }
   var data={};
   data.id=questions[qId]['id'];
   data['answers[]']=answers;

   $.post('index.php',data);

Bu print_r verir:

Array
(
    [id] => 3
    [answers] => Array
        (
            [0] => 
            [1] => 
        )

)

Düşünceler?

3 Cevap

Sadece son bir tane almak için gidiyoruz böylece defalarca answers.x redeclaring ediyoruz. x gerçek değişken adı ve değil düşünüyorsanız değerdir. Ayrıca "allAnswers" hattı üzerinde bir çift eşit var. deneyin:

var answers = new Array();
for (x=0; x< allAnswers.length; x++)
   {
       answers[ x ]=new Array();
       answers[ x ]['id'] = allAnswers[x]['id'];
       answers[ x ]['val'] = $("#field_" + x).val();
   }

Bu değiştirin:

var answers=new Array();
for (x=0; x< allAnswers.length; x++) {
    answers[x]=new Array();
    answers[x]['id']=allAnswers[x]['id'];
    answers[x]['val']=$("#field_" + x).val();
}

Bu grubu:

var answers = new Array();
for (x=0; x< allAnswers.length; x++) {
    answers[x] = {};
    answers[x]['id']=allAnswers[x]['id'];
    answers[x]['val']=$("#field_" + x).val();
}

Nesnelerin bir dizi değil, bir dizi bir dizi istiyorum.

Ah o daha mantıklı; Eğer önceden biçimlendirilmiş vardı yolu girişini eşleşmiyor.

Her neyse, cevaplar nesne bir JavaScript nesnesidir; PHP nasıl hallederim bilmiyor. Ben size önce PHP geçirmeden tek tek öğeleri dışarı ayrıştırmak, veya PHP tarafında json_decode () kullanmanızı öneririz.