使用从数据库填充的选择动态生成表单行

蒂姆·刘易斯

这是我的困境。在Laravel中,我inspections像这样传递视图:

$inspections = Inspection::where("status", "!=", "started")->get();
return View::make('process')->with("inspections", $inspections);

检验包含已通过启动阶段的所有检验的列表。在视图中,我正在创建一个表单来处理这些检查,如下所示:

<tr id="row_0" data-row="0">
  <td>
    <select class="form-control input-sm" name="inspection[0]">
      <option value=""></option>
      @foreach($inspections AS $inspection)
      <option value="{{ $inspection->id }}">{{ $inspection->submission_number }} - {{ $inspection->policy_number }} - {{ $inspection->location_address }}</option>
      @endforeach
    </select>
  </td>
  <td><label class="radio-inline"><input type="radio" name="received[0]" value="yes" >Yes</label><label class="radio-inline"><input type="radio" name="received[0]" value="no" >No</label></td>
  <td><label class="radio-inline"><input id="i_on_0" type="radio" name="invoiced[0]" value="yes" onclick="toggleInvoice(this);" data-row="0"/>Yes</label><label class="radio-inline"><input id="i_off_0" type="radio" name="invoiced[0]" value="no" onclick="toggleInvoice(this);" data-row="0"/>No</label></td>
  <input type="hidden" id="in_0" name="invoice_number[0]" disabled/>
  <td><input type="text" id="ia_0" name="invoice_amount[0]" class="form-control input-sm" disabled/></td>
  <td><label class="radio-inline"><input type="radio" id="p_on_0" name="paid[0]" value="yes" disabled/>Yes</label><label class="radio-inline"><input type="radio" id="p_off_0" name="paid[0]" value="no" disabled/>No</label></td>
</tr>

这将创建以下内容:

捕获

这很好,但我不知道如何在此表上追加另一行,并且仍然显示每个option的值现在,我用+按钮在Javascript中调用以下函数:

function appendProcessingRow(){
  var current_row = $("#processing_table tr:last").attr("data-row");
  var content = '<tr id="row_' + (parseInt(current_row) + 1) + '" data-row="' + (parseInt(current_row) + 1) + '"><td><input type="text" name="policy_number[' + (parseInt(current_row) + 1) + ']" class="form-control input-sm"/></td><td><label class="radio-inline"><input type="radio" name="received[' + (parseInt(current_row) + 1) + ']" value="yes">Yes</label><label class="radio-inline"><input type="radio" name="received[' + (parseInt(current_row) + 1) + ']" value="no"> No</label></td><td><label class="radio-inline"><input type="radio" name="invoiced[' + (parseInt(current_row) + 1) + ']" value="yes" onclick="toggleInvoice(this);" data-row="' + (parseInt(current_row) + 1) + '"/> Yes</label><label class="radio-inline"><input type="radio" name="invoiced[' + (parseInt(current_row) + 1) + ']" value="no" onclick="toggleInvoice(this);" data-row="' + (parseInt(current_row) + 1) + '"/> No</label></td><input type="hidden" id="in_' + (parseInt(current_row) + 1) + '" name="invoice_number[' + (parseInt(current_row) + 1) + ']" disabled/>><td><input type="text" id="ia_' + (parseInt(current_row) + 1) + '" name="invoice_amount[' + (parseInt(current_row) + 1) + ']" class="form-control input-sm" disabled/></td><td><label class="radio-inline"><input type="radio" id="p_on_' + (parseInt(current_row) + 1) + '" name="paid[' + (parseInt(current_row) + 1) + ']" value="yes" disabled/> Yes</label><label class="radio-inline"><input type="radio" id="p_off_' + (parseInt(current_row) + 1) + '" name="paid[' + (parseInt(current_row) + 1) + ']" value="no" disabled/> No</label></td></tr>';
  $('#processing_table > tbody:last').append(content);
}

哪个可行,但是会创建一个<input>标签而不是select选项。请参阅以下内容:

捕捉2

我的问题是,我要如何在Javascript中创建相同的行布局,同时要记住选择是@foreach在Laravel中生成的尝试放置:

<select class="form-control input-sm" name="inspection[0]">
  <option value=""></option>
  @foreach($inspections AS $inspection)
  <option value="{{ $inspection->id }}">{{ $inspection->submission_number }} - {{ $inspection->policy_number }} - {{ $inspection->location_address }}</option>
  @endforeach
</select>

在Java脚本内部,appendProcessingRow()它在一定程度上“起作用”,但其中的值不存在:

捕捉3

因此,任何帮助将不胜感激。在此先感谢,对于冗长的帖子,深表歉意。

Lukasgeiter

如果不使用“完全ajax”从服务器获取选项,我认为克隆现有行是最简单的方法。

function appendProcessingRow(){
    var lastRow = $("#processing_table tr:last");
    var newRow = lastRow.clone();
    var newId = parseInt(lastRow.data('row'))+1;
    newRow.data('row', newId);
    newRow.prop('id', newId);
    newRow.find('select').prop('selectedIndex', 0);

    // reset other inputs in a similar fashion

    lastRow.after(newRow);
}

另外,关于您的输入名称...您应该可以将它们全部保留为policy_number[]没有索引。它将自动将值放入数组(按它们在html中出现的顺序)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 jQuery 将数据库中的选择选项填充到动态选择选项

来自分类Dev

如何基于下拉菜单选择自动使用数据库中的数据填充表单

来自分类Dev

使用ajax和jquery从数据库动态添加预填充的表单

来自分类Dev

从数据库调用动态填充选择标签选项

来自分类Dev

使用数据库中的数据预填充更新表单

来自分类Dev

动态使用数据库返回的数据填充下拉列表

来自分类Dev

使用数据库结果数组 codeigniter 填充 html 表单

来自分类Dev

在数据库上动态生成字段并为表单生成动态字段

来自分类Dev

从数据库动态创建表单并使用jquery访问元素

来自分类Dev

使用MVC从数据库填充选择框

来自分类Dev

使用MVC从数据库填充选择框

来自分类Dev

jQuery-使用JDBC从数据库填充选择列表

来自分类Dev

从MySQL数据库自动填充表单

来自分类Dev

从数据库动态填充javaFX treeView

来自分类Dev

如何使用动态变量从数据库中选择

来自分类Dev

动态表单插入数据库

来自分类Dev

使用mysql连接器.NET从数据库中选择单行

来自分类Dev

填充数据库中的选择

来自分类Dev

用数据库条目填充选择

来自分类Dev

根据从下拉列表中选择的值来填充数据库中的表单值

来自分类Dev

选择值更改时,用ajax调用从数据库查询中填充表单字段

来自分类Dev

根据数据库记录动态生成复选框表单

来自分类Dev

根据会话动态选择数据库

来自分类Dev

如何使用数据库中的数据预填充Web表单

来自分类Dev

使用数据库数据预填充表单,对象返回null

来自分类Dev

如何使用基于另一个选择的数据库调用填充选择

来自分类Dev

从SQL填充选择字段,使用选择来更新数据库

来自分类Dev

Flask:从数据库内容动态填充的表单

来自分类Dev

如何使用Django中存储在数据库中的值自动填充表单模板?

Related 相关文章

  1. 1

    使用 jQuery 将数据库中的选择选项填充到动态选择选项

  2. 2

    如何基于下拉菜单选择自动使用数据库中的数据填充表单

  3. 3

    使用ajax和jquery从数据库动态添加预填充的表单

  4. 4

    从数据库调用动态填充选择标签选项

  5. 5

    使用数据库中的数据预填充更新表单

  6. 6

    动态使用数据库返回的数据填充下拉列表

  7. 7

    使用数据库结果数组 codeigniter 填充 html 表单

  8. 8

    在数据库上动态生成字段并为表单生成动态字段

  9. 9

    从数据库动态创建表单并使用jquery访问元素

  10. 10

    使用MVC从数据库填充选择框

  11. 11

    使用MVC从数据库填充选择框

  12. 12

    jQuery-使用JDBC从数据库填充选择列表

  13. 13

    从MySQL数据库自动填充表单

  14. 14

    从数据库动态填充javaFX treeView

  15. 15

    如何使用动态变量从数据库中选择

  16. 16

    动态表单插入数据库

  17. 17

    使用mysql连接器.NET从数据库中选择单行

  18. 18

    填充数据库中的选择

  19. 19

    用数据库条目填充选择

  20. 20

    根据从下拉列表中选择的值来填充数据库中的表单值

  21. 21

    选择值更改时,用ajax调用从数据库查询中填充表单字段

  22. 22

    根据数据库记录动态生成复选框表单

  23. 23

    根据会话动态选择数据库

  24. 24

    如何使用数据库中的数据预填充Web表单

  25. 25

    使用数据库数据预填充表单,对象返回null

  26. 26

    如何使用基于另一个选择的数据库调用填充选择

  27. 27

    从SQL填充选择字段,使用选择来更新数据库

  28. 28

    Flask:从数据库内容动态填充的表单

  29. 29

    如何使用Django中存储在数据库中的值自动填充表单模板?

热门标签

归档