php - 通过 AJAX 将关联数组传递给 PHP

标签 php javascript jquery ajax

我正在尝试通过 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/

相关文章:

php - $_POST 表单提交后为空

javascript - 将带有悬停动画的透视变换应用于元素

javascript - HTTPS 网站的 SSL 证书要求

javascript - 如何使用 Javascript onclick 动态更改空 div 的高度并使用 onScroll 恢复

php - CakePHP 3 : Accessing trait from controller

php - 使用 PHP APC 的用户缓存和系统缓存之间的差异

php - JQuery $.post & php 'if' 语句停止工作

javascript - 如何使用 jQuery Selectric 在打开之前禁用菜单选项?

c# - 从 jquery ajax 调用 webmethod 和静态对象的问题

javascript - 我单击时选择了多个元素,现在我只想要其中一个(单击功能类似于浏览器中的检查器)