1

ID/名前に角括弧を含む非表示の入力フィールドをフォームに動的に追加しようとしています:

<input type="hidden" name="myField[]" id="myField[]" value="someValue" />

追加は正常に機能します (少なくとも firebug は正しく追加されたフィールドを表示します)。しかし、受け取った PHP スクリプトでポスト配列にアクセスしようとすると、フィールド名が終了しmyField%5B%5D、配列が失われます。

このようなフィールドを手動で HTML コードに追加すると、postvars に適切な配列が作成されます。

これを修正するにはどうすればよいですか?

[編集]

これは私がフィールドを追加する方法です:

$('#theForm').append(
                $('<input/>')
                    .attr('type', 'hidden')
                    .attr('name', 'myField[]')
                    .attr('id', 'myField[]')
                    .val(value)
            );

\[\]また、次のようなエスケープ文字を使用してみ\\[\\]ましたが、役に立ちませんでした

4

2 に答える 2

0

これを読んで、これを試してみてください:

$('#theForm').serialize().replace('%5B%5D', '[]') 

またはこれ

$.param(obj, true);
$.post(url,serializedObj,function(){});

true$.param、オブジェクトをシリアル化する従来の方法を使用する必要があることを示します。従来の方法では、同じパラメーター名に遭遇したときに角括弧を使用しません。

于 2013-08-01T09:29:40.177 に答える
0

これを試して

$('#theForm').append('<input type="hidden" name="myField[]" id="myField[]" value="someValue" />');
于 2013-08-01T09:47:56.437 に答える