コードを次のように変更しました。
$(document).ready(function () {
$('#add').on('click', function () {
var $contacts = $(".contact");
$("<div/>").append($("<input>", {
"type": "text",
"name": "contact[" + $contacts.length + "][name]"
})).insertAfter($contacts.last());
});
});
<div class="contact">
Name: <input type="contact[0][name] type="text">
</div>
<div class="contact">
Name: <input type="contact[1][name] type="text">
</div>
<div class="contact">
Name: <input type="contact[2][name] type="text">
</div>
これは機能し、別の行を追加できます。ただし、次の 2 つの点で助けが必要です。
1) 別の行を追加して送信を押したとき。$_POST 配列は、動的に追加された配列ではなく、最初の 3 つの値のみを表示します。
2) 追加された html にテキストを追加するにはどうすればよいですか? 入力ボックスのみが表示され、その前にある「名前:」は表示されません。
ありがとう!
これは print_r($_POST) が返すものです (そこには他のフォームフィールドがあります):
Post:
Array
(
[custsubmit] => Submit
[contact] => Array
(
[0] => Array
(
[id] =>
[name] => name1
)
[1] => Array
(
[id] =>
[name] => name2
)
[2] => Array
(
[id] =>
[name] => name3
)
)
)