这不是一个大问题,我相信你们都有一个解决这个问题的想法。 请帮忙。
问题是我有动态表单,我可以将其保存到数据库中并在每行的编辑页面中再次调用它,它对我来说工作正常,但是,idk 如何将新行再次添加到 DB 中,导致我使用的变量无法计算行数。看看这个兄弟
这是我的表视图
<tbody>
<?php foreach($rows as $value): ?>
<tr>
<td><textarea class="form-control" rows="3" name="analisa[]" placeholder="Analisa Penyebab" style="resize: none;
height: 50px">{{$value->analisa}}</textarea></td>
<td><textarea class="form-control" rows="3" name="tindakan[]" placeholder="Tindakan Perbaikan dan Pencegahan"
style="resize: none; height: 50px">{{$value->tindakan}}</textarea></td>
<td><input class="form-control" type="text" name="pic[] placeholder="PIC" value="{{$value->pic}}"></td>
<td><input class="form-control" type="date" name="tanggal_pelaksanaan[]" class="picker__table" value="{{$value->tanggal_pelaksanaan}}"></td>
</tr>
<?php endforeach?>
</tbody>
</table>
<a class="button" href="#" role="button" id="add"> Tambah Analisa</a><br><br>
现在看看我的Javascript
$(document).ready(function(){
var i = count($rows);
$('#add').click(function(){
$('#tbanalisa tbody').append("<tr>"+"<td>"+i+"</td>"+"<td><textarea class="form-control" rows="3" name="analisa[]"+"" placeholder="Analisa Penyebab" style="resize: none; height: 50px"></textarea></td>"+"<td><textarea class="form-control" rows="3" name="tindakan[]"+"" placeholder="Tindakan Perbaikan dan Pencegahan"style="resize: none; height: 50px"></textarea></td>"+"<td><input class="form-control" type="text" name="pic[]"+"" placeholder="PIC"></td>"+"<td><input class="form-control" type="date" name="tanggal_pelaksanaan[]"+""></td>"+"</tr>");
i++;
});
});
想象一下我已经有 2 行,现在如果我更改 var i = 3; 它工作正常,现在它如何自动计算我已经有多少行?
你应该将你的计数存储在一个元素中(使用 php(,以便你可以在客户端浏览器中使用 jquery 访问这个值,例如:
<tbody data-row-count="<?=count($rows); ?>">
不必是 tbody 元素 我只是将其用作示例
现在,在您的 jquery 中,您可以获取当前行数并在单击时再次设置它:
$(document).ready(function(){
var i = $(tbody).data('row-count');
$('#add').click(function(){
$('#tbanalisa tbody').append("<tr>"+"<td>"+i+"</td>"+"<td><textarea class="form-control" rows="3" name="analisa[]"+"" placeholder="Analisa Penyebab" style="resize: none; height: 50px"></textarea></td>"+"<td><textarea class="form-control" rows="3" name="tindakan[]"+"" placeholder="Tindakan Perbaikan dan Pencegahan"style="resize: none; height: 50px"></textarea></td>"+"<td><input class="form-control" type="text" name="pic[]"+"" placeholder="PIC"></td>"+"<td><input class="form-control" type="date" name="tanggal_pelaksanaan[]"+""></td>"+"</tr>");
i++;
$(tbody).data('row-count', i);
});
});
最好在计数器元素中添加一个 ID,这样它在 html 中有一个唯一的标识符,并且可以通过 ID 在 jQuery 中访问。所以在你的元素中添加id=RowCounter
然后在jQuery中你可以使用$('#RowCounter')
<?php $counter = 0; ?>
您可以使用变量 say $counter 并在表的每一行递增它,并从 java 脚本访问此变量
$(document).ready(function(){
var $counter = <?php echo json_encode($counter); ?>;
$('#add').click(function(){
$('#tbanalisa tbody').append("<tr>"+"<td>"+i+"</td>"+"<td><textarea class="form-control" rows="3" name="analisa[]"+"" placeholder="Analisa Penyebab" style="resize: none; height: 50px"></textarea></td>"+"<td><textarea class="form-control" rows="3" name="tindakan[]"+"" placeholder="Tindakan Perbaikan dan Pencegahan"style="resize: none; height: 50px"></textarea></td>"+"<td><input class="form-control" type="text" name="pic[]"+"" placeholder="PIC"></td>"+"<td><input class="form-control" type="date" name="tanggal_pelaksanaan[]"+""></td>"+"</tr>");
$counter++;
});
});