一部のフィールドが行のように見えるフォームがあるので、JSを使用してそれらを追加/削除できます。例えば:
ID = 1のフィールド(既存の行)
<input id="id[1]" type="text" name="id[1]" value="1" />
<input id="name[1]" type="text" name="name[1]" value="100" />
ID = 2のフィールド(既存の行)
<input id="name[2]" type="text" name="name[2]" value="200" />
<input id="name[2]" type="text" name="name[2]" value="200" />
デフォルトで作成される新しい行(既存の行にもう1つの行を追加できるようにするため)
<input id="id[n0]" type="text" name="id[n0]" value="" />
<input id="name[n0]" type="text" name="name[n0]" value="" />
JSによって作成された新しい行
<input id="id[n1]" type="text" name="id[n1]" value="" />
<input id="name[n1]" type="text" name="name[n1]" value="" />
したがって、フォームを進めるよりも、更新する行と追加する行がわかります(インデックスが「n」で始まる場合は新規、インデックスが数値の場合は既存の要素)。
サブフォームを試しましたが、フィールドごとにサブフォームを作成する必要がありますか?次のコードを使用する場合:
$subForm = new Zend_Form_SubForm();
$subForm->addElement('Text', 'n0');
$this->addSubForm($subForm, 'pid');
$subForm = new Zend_Form_SubForm();
$subForm->addElement('Text', 'n0');
$this->addSubForm($subForm, 'name');
このための最良の方法は何ですか?
1)サブフォームを使用しますか?
2)Zend / Form / Decorator / ViewHelper.phpを拡張して、name[nX]
?のような名前を使用します。
3)他の解決策?
ありがとう。