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”。例如。如果您已经有一条记录(记录 #0),则 id 将 = 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

使用knockoutJS,你可以很容易地做到这一点

           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 回答