我正在尝试通过 AJAX 将其传递给 PHP 脚本:
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)
,这是输出:
answers [object Object]
id 3
我做错了什么?
编辑:更改代码以使用数组,即:
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);
给出这个 print_r:
Array
(
[id] => 3
[answers] => Array
(
[0] =>
[1] =>
)
)
想法?
最佳答案
替换这个:
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 answers = new Array();
for (x=0; x< allAnswers.length; x++) {
answers[x] = {};
answers[x]['id']=allAnswers[x]['id'];
answers[x]['val']=$("#field_" + x).val();
}
您需要一个对象数组,而不是数组数组。
关于php - 通过 AJAX 将关联数组传递给 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/791876/