したがって、JSON 文字列の送信を強制する必要があることがわかりました。
基本的に、この行は次のように変更する必要があります。
データ: {データ: JSON.stringify(objectifyArray($("#" + $id.id).serializeArray()))}
説明:#$id
は php で記述されており、通常は文字列に変数を含める場合と同様に、jquery の "#" が追加された、問題のフォームの ID (Jquery が何らかの形で解釈するもの) であると予想されます。ただし、実際にはテキスト文字列内のフォーム全体です (方法/理由はわかりません:/)。そのため"#" + $id.id
、問題のフォームの実際の ID プロパティを取得するには、それを置き換える必要があります。
それが完了したら、objectifyArray と JSON.js JavaScript ライブラリを使用して、行が行う正しい JSON 文字列にフォームをフォーマットするだけです。
function objectifyArray(a)
{
var o = {};
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
}