javascript - 将数据输入到 2 个表中
问题描述
我正在做一个购物模块。该代码已用于输入销售表和销售明细。当我输入一个产品时,它可以正常工作,但是当我想同时输入两个以上的产品时,我收到此错误:
未初始化的字符串偏移量:1
值得一提的是,数据是通过带有js的矩阵发送的,在控制器中我通过while循环接收它。这是 JavaScript 代码:
<script>
$(document).ready(function(){
$("#bt_add").click(function(){
agregar();
});
});
var cont=0;
total = 0;
subtotal=[];
precioIva=[];
$("#guardar").hide();
$("#pidConcepto").change(mostrarValores);
function mostrarValores() {
datosArticulo=document.getElementById('pidConcepto').value.split("_");
$('#pprecio').val(datosArticulo[1]);
$('#pimpuesto').val(datosArticulo[2]);
}
function agregar() {
datosArticulo=document.getElementById('pidConcepto').value.split('_');
idConceptosPagos=datosArticulo[0];
consepto=$("#pidConcepto option:selected").text();
precio=$("#pprecio").val();
impuesto=$("#pimpuesto").val();
cantidad=$("#pcantidad").val();
if(consepto!=" " && precio!=" " && impuesto!=" " && cantidad!= " ")
{
precioCantidad = precio * cantidad;
iva = precioCantidad * 16 / 100;
subtotal[cont] = precioCantidad;
precioIva[cont] = iva;
total1=precioIva[cont]+subtotal[cont];
total=total+total1;
var fila ='<tr class="selected" id="fila' + cont +'" ><td><button type="button" class="btn btn-warning" onclick="eliminar('+cont+');">X</button></td><td><input type="hidden" name="idConceptosPagos[]" value="'+idConceptosPagos+'">'+consepto+'</td><td><input type="text" name="precio[]" readonly="readonly" style="text-align: right;" value="$/. '+precio+'"></td><td><input type="text" name="cantidad[]" disabled value="'+cantidad+'"></td><td type="text" name=precioCantidad[] style="text-align: right;" readonly>$/.'+precioCantidad+'</td><td type="number" style="text-align: right;" name=iva[]>$/.'+iva+'</td><td style="text-align: right;">$/.'+ total1+'</td></tr>';
cont++;
limpiar();
$("#total").html("$/. " + total);
$("#total_venta").val(total);
evaluar();
$("#detalles").append(fila);
}else {
alert("Error al ingresar el detalle de la venta, revise los datos del articulo");
}
}
function limpiar() {
$("#pfechaPago").val("");
$("#pprecio_venta").val("");
}
function evaluar(){
if (total>0) {
$("#guardar").show();
}
else {
$("#guardar").hide();
}
}
function eliminar(index) {
total=total-subtotal[index];
$("#total").html("$/. " + total);
$("#total_venta").val(total);
$("#fila" + index).remove();
evaluar();
}
在控制器中我这样做:
$venta = new VentaUtp;
$venta->idAlumno=$request->get('idAlumno');
$venta->idCiclo=$request->get('idCiclo');
$venta->clave=$request->get('clave');
$venta->anio=$request->get('anio');
$venta->mes=$request->get('mes');
$venta->pagado= 'N';
$venta->cantidadProgramada = $request->get('total_venta');
$venta->cantidadPagada = null;
$venta->save();
$idAlumno = $request->get('idAlumno');
$idCiclo = $request->get('idCiclo');
$idConceptosPagos = $request->get('idConceptosPagos');
$precio = $request->get('precio');
$pcantidad = $request->get('pcantidad');
$cont=0;
while ($cont < count($idConceptosPagos))
{
$detalle = new DetalleVentaUtp;
$detalle->idAlumnoCxC= $venta->idAlumnosCxC;
$detalle->idAlumno = $idAlumno[$cont];
$detalle->idCiclo = $idCiclo[$cont];
$detalle->idConseptoPago= $idConceptosPagos[$cont];
$detalle->cantidad=$pcantidad[$cont];
$detalle->save();
$cont= $cont + 1;
}
我认为错误来自这个任务:
$cont = 0;
但我不知道为什么。我该如何解决这个问题?
解决方案
推荐阅读
- c - 通用库依赖项?
- java - 为什么尝试上传大视频时,app engine gcloud 会抛出错误 413 entity too large?
- c# - 显示向左滚动固定 n 个点的大小与时间的 .Net 快速线图的最快方法是什么?
- python - 实例属性在python进程中丢失
- python - 更改相关矩阵 pandas df 格式以保存在数据库中
- git - 复制没有 .git 目录的存储库时,也会复制 Git 历史记录
- c++ - C++ istream 永远运行
- python - 如何有效地获取python列表列表中项目的计数
- laravel - 根目录外的存储路径
- laravel - Vue 倒计时在 IOS 浏览器上不起作用