我在将input
in 状态的值发送checked
到我的控制器时遇到问题,不幸的是,它只向我发送了我当时所在页面的值,而不是我选择 a 的所有页面的值checkbox
,我的意思是paginas 是因为我使用的是datatables
.
我的代码如下:
<div class="container">
<h2>Ventas</h2>
<form action="venta.php" method="POST">
<table id="inventario" class="table table-hover table-bordered table-condensed">
<thead>
<tr>
<th><i class="fa fa-check"></i> Selección articulo</th>
<th><i class="fa fa-list-ol"></i> Cantidad</th>
<th><i class="fa fa-building"></i> Marca</th>
<th><i class="fa fa-list"></i> Categoria</th>
<th><i class="fa fa-usd"></i> Precio</th>
</tr>
</thead>
<tbody>
<?php foreach ($articulos as $articulo): ?>
<tr>
<td><label class="checkbox-inline"><input name="articulos[]" type="checkbox" value="<?php echo $articulo['id']; ?>"><?php echo $articulo['nombre']; ?></label></td>
<td><?php echo $articulo['cantidad']; ?></td>
<td><?php echo $articulo['categoria']; ?></td>
<td><?php echo $articulo['marca']; ?></td>
<td><?php echo number_format($articulo['precio_u']); ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
<input type="submit" class="btn btn-warning" name="vender" value="Vender">
</form>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#inventario').DataTable();
var dataArr = [];
$('tr').filter(':has(:checkbox:checked)').each(function() {
dataArr.push($(this).find('input').eq(0).val());
console.log(dataArr);
});
} );
</script>
正如你们中的一些人所看到的,我尝试制作一个脚本来收集所有值并能够将它们发送到我的控制器,但是我做不到,我对 JS 不是很好。
我发现有人为这个问题制作了这个片段,但是我不知道如何补充它。
var rows = $(('#datatable')
.rows({ 'search': 'applied' })
.nodes()).filter(':has(:checkbox:checked)');//busca todos los registros del datatable
rows.each(function(index,elem){
//cada row es un tr
console.log($('datatable').row(elem).data());
});
如果需要使用ajax发送选中复选框的所有值,我没有问题。
承诺是债务,解决同样的问题如下:
首先从表中删除类型为 checkbox 的输入,只留下空的 td:
添加数据表选择库绑定:
要使用该库,我们按如下方式进行,在这种情况下,在每行的第一个 td 上。
此时,我们应该已经在第一列中看到了复选框输入,并且我们应该能够选择它们。
然后要获取选定的元素,我们可以这样做:
首先,您可以将 id=form 放入表单以便能够识别它,您可以将 type="button" 放入按钮以便它不会自动提交,并且 id="sell" 以便稍后捕获点击事件(在html 上面的这些更改已经应用)。
然后,您可以通过单击“出售”按钮捕获选择的项目,将它们添加到表单中,输入 type="hidden" 以及这些项目的 id,然后提交表单。
编辑
在代码中添加了注释以区分多选和单选,更新了库的版本并添加了一个工作示例。
这是一个工作示例:
这对我来说有点简单......在获得选定的复选框之前,我们必须撤消数据表格式。在将保存选定复选框的 javascript 函数中,执行以下操作:
问候。