首页 > 解决方案 > 将数据输入到 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;

但我不知道为什么。我该如何解决这个问题?

标签: javascriptmysqlarrayslaravel-5

解决方案


推荐阅读