1

我在这里有一个 jsfiddle:http: //jsfiddle.net/ybZvv/61/

请按照小提琴中的步骤操作:

  1. 当您打开小提琴时,单击“添加问题”按钮两次,这将追加 2 行。
  2. 在第一行选择答案按钮“A”和“C”,在第二行选择答案按钮“A”、“B”和“E”。选择的每个答案按钮的复选框值显示在下方。

问题是我执行 var_dump($_POST) 时的结构。

var_dump($_POST) 的当前结构如下所示:

array(3) { 
  ["numQuestion"]=> array(2) { 
    [0]=> string(1) "1" 
    [1]=> string(1) "2" 
  }  
  ["submitDetails"]=> string(14) "Submit Details"
  ["value"]=> array(4) { 
    ["answerARow"]=> string(2) "on" 
    ["answerCRow"]=> string(2) "on" 
    ["answerBRow"]=> string(2) "on" ["answerERow"]=> string(2) "on"
  } 
}

我希望它如下所示:

array(3) {
  ["numQuestion"]=> array(2) { 
    [0]=> string(1) "1" 
    [1]=> string(1) "2"
  }
  ["submitDetails"]=> string(14) "Submit Details"
  ["value"]=> array(5) {
    [1]=> array(2) {
      [0]=> string(1) "A"
      [1]=> string(1) "C"
    }
    [2]=> array(3) {
      [0]=> string(1) "A" 
      [1]=> string(1) "B" 
      [2]=> string(1) "E"
    }
  }
}

有没有人对如何操纵代码以达到这种结构有任何想法?

实际上结构应该是这样的,有 2 个问题,问题 1 的答案是 A 和 C,问题 2 的答案是 A、B 和 E

4

1 回答 1

2

不要在您的复选框中生成,而是value[answerCRow]尝试将它们创建为:

<input type="checkbox" id="hiddenanswerHRow0value" name="value[" + iQuestionIndex + "][]"  value="A" checked="">

在哪里,您的价值将不断迭代。

jQuery 的updateAnswer函数将有这一行:

var input = '<input type="checkbox" id="' + hid + '" name="value[' + iQuestionIndex + '][]" value="' + value + '" checked /><label for="' + hid + '">' + value + '</label>';
_oCurrAnswerContainer.append(input);
于 2012-10-13T10:42:49.157 回答