0

私は CRM を作成しており、「レコードの追加」というボタンがあります。ユーザーが [レコードの追加] をクリックすると、フォーム フィールドに以下を追加する必要があります。

<div class="record">
Record Name: <br /><input name="recordName" type="text" /><br />
Record: <br /><input name="record" type="text" />
</div>

必要な数の「レコード」を追加できます。

私の質問は、不明な数のこれらのレコードのすべてのデータを収集し、ajax を介して送信できる、これを行う良い方法は何ですか。私はすべての ajax のことを知っていますが、私が考えているよりも動的フィールドを実行する簡単な方法があることを知っています。

4

2 に答える 2

1

JavaScript で追加した数を追跡し、この「ID」を使用します。例えば。すでに 1 つのレコード (レコード #0) がある場合、id would = 1;

<div class="record" id="record-1">
  Record Name: <br /><input name="record[1][name]" type="text" /><br />
  Record: <br /><input name="record[1][record]" type="text" />
</div>

div に id を設定すると、将来、必要がないと判断した場合に削除できます。または、検証エラーなどを検出した場合は、その div にジャンプします。

これがphpに送られると、次のようにアクセスできます。

echo $_REQUEST['record'][0]['name'];

foreach($_REQUEST['record'] as $r)
  echo $r['name'];

詳細については、 http://php.net/manual/en/faq.html.php#faq.html.arraysを参照してください。

于 2012-12-05T05:19:03.767 に答える
0

ノックアウトJSを使用すると、これをかなり簡単に実現できます

           var appVM = {
                  records: ko.observableArray(),

                  addRecord: function(){

                      records.push({ recordName:"" })
                  }
           }

           $(function(){
                  ko.applyBindings(appVM);
           });


           <div data-bind="foreach: records">
                <div data-bind="recordName"></div>
           </div>
           <form action="">
                <button data-bind="click: addRecord">Add Record</button>
                <input data-bind="value: records[records.length-1].recordName></input>
                <input type="submit">Save</input>
           </form>
于 2012-12-05T06:34:49.757 に答える