私はAJAX経由で送信しようとしているフォームがあり、JSON文字列に変換する際に問題があります。伝統的な方法でフォームが提出されると、POST配列は2次元配列にソートされます。私が抱えている問題は、Javascriptは名前を2D配列として認識しないということです。以下は私が達成しようとしているものの例です。また、動的なフォームなので、ユーザーが最大7つのセクションを追加できると想像してください。Javascript:フォーム処理
<form id="reg">
//Week 1: rendered by php
<input type="checkbox" value="sunday" name="week[0][]" />
//Imagine everyday of the week listed
<input type="checkbox" value="saturday" name="week[0][]" />
//Week 2: this section would be rendered by javascript when the user pressed a button
<input type="checkbox" value="sunday" name="week[1][]" />
//Imagine everyday of the week listed
<input type="checkbox" value="saturday" name="week[1][]" />
</form>
//PHP interpretation
Array(
0=>Array(Sunday...Saturday),
1=>Array(Sunday...Saturday)
)
//Javascript interpretation
0=>Sunday
...
6=>Saturday
7=>Sunday
...
13=>Saturday
は私の質問を明確にするために、それは可能です/どのように私はJavaScriptを2次元配列としてフォーム名を解釈していますか?
//Javascript code
function parseForm(){
var x;
formContents = new Object();
for(x = 0; x < reg.length; x++){
formContents[reg[x].name] = reg[x].value;
}
//afterwards, send to another function to convert to json
}
フォームをJSONに変換する場合は、生成すると予想されるJSONの例を指定すると効果的です。 '日曜日': 'チェック'、 '月曜日': 'チェックされていない'、... '土曜日': 'チェックされた'}、{'日曜日': 'チェック'、 '月曜日': 'チェックされていない'、.. 'Saturday ':' checked '}] '。 – RobG
何かの行に沿って:(チェックされた値を提出するだけです) [{"0":{"sunday": "チェック"、 "monday"}}、{"1":{"火曜日": "チェック" "wednesday": "checked"}}] – Josh
チェックされている場合にのみ提出された場合、チェックされた日の名前が必要ですので、 '[['sunday'、 'saturday']、['tuesday'、 'wednesday' ]] 'で十分です。 – RobG