1

ここに jsfiddle があります: http://jsfiddle.net/ybZvv/61/

フィドルの手順に従ってください:

  1. フィドルを開いて [質問を追加] ボタンを 2 回クリックすると、2 行が追加されます。
  2. 1 行目で回答ボタン「A」と「C」を選択し、2 行目で回答ボタン「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 に答える