¿que puedo estar haciendo mal?
esto seria el código html del formulario
Código HTML:
<form action="guardar.php" id="Agarticulos" method="post" > <input type="hidden" name="cosa" id="cosa" value="presualqui"> <input type="hidden" name="loque" value="articulos"> <input type="text" name="nuevo" id="nuevoArticulo" value="si"> <table id="table-data"> <thead> <tr class="cabecera_tabla"> <th class="uni">Uni</th> <th class="concepto">Concepto</th> <th class="precio">Precio</th> <th class="coef">Coef.</th> <th class="desc">%Desc.</th> <th class="subtotal">Subtotal</th> <th class="opciones">Opciones</th> </tr> </thead> <tbody id="LineasDocumento" class="ordenable Lineasdoc"> <tr> <td class="uni"><input type="text" name="cantidad" id="cantidad" class="obligatorio numeros" onkeypress="return Comprobarnum(event)" placeholder="Uni"></td> <td class="concepto"><input type="text" name="nombre" id="Articulo" autocomplete="off" class="obligatorio" placeholder="Concepto"></td> <td class="precio"><input type="text" name="precio" id="precio" class="obligatorio numeros" onkeypress="return Comprobarnum(event)" placeholder="precio"></td> <td class="coef"><input type="text" name="coeficiente" id="coeficiente" class="obligatorio numeros" onkeypress="return Comprobarnum(event)" placeholder="Coef."></td> <td class="desc"><input type="text" name="descu" id="descu" class="obligatorio numeros" onkeypress="return Comprobarnum(event)" placeholder="Desc."></td> <td class="subtotal"><input type="text" name="total" disabled id="total" placeholder="Subtotal"></td> <td class="opciones"><input id="agregarln" onclick="AddLinea(this.form);" type="button" class="botonverde" value="agregar" /></td> </tr> </tbody> </table> <input type="submit" value="enviar"> </form>
Código:
y el resultado que me da es este:var LineaNum = 0; function AddLinea(frm) { var error = 0; if ($("#cantidad").val().length < 1) { $().toastmessage('showToast', { text : 'Error<br /> El articulo no puede estar vacio', sticky : false, type : 'error' }); var error = 1; } if ($("#Articulo").val().length < 1) { $().toastmessage('showToast', { text : 'Error<br /> El articulo no puede estar vacio', sticky : false, type : 'error' }); var error = 1; } if ($("#precio").val().length < 1) { $().toastmessage('showToast', { text : 'Error<br /> El precio no puede estar vacio', sticky : false, type : 'error' }); var error = 1; } if ($("#coeficiente").val().length < 1) { $().toastmessage('showToast', { text : 'Error<br /> El coeficiente no puede estar vacio', sticky : false, type : 'error' }); var error = 1; } if ($("#descu").val().length < 1) { $().toastmessage('showToast', { text : 'Error<br /> El descuento no puede estar vacio', sticky : false, type : 'error' }); var error = 1; } if(error != 1) { LineaNum ++; var Linea = '<tr id="LineaNum'+LineaNum+'" class="Lineasdoc"><td class="uni"><input type="hidden" class="posicion" name="posicion['+LineaNum+'][posicion]"><input type="hidden" name="cantidad['+LineaNum+']" value="'+frm.cantidad.value+'">'+frm.cantidad.value+'</td><td class="concepto"><input type="hidden" name="nombre['+LineaNum+']" value="'+frm.nombre.value+'">'+frm.nombre.value+'</td><td class="precio"><input type="hidden" name="precio['+LineaNum+']" value="'+frm.precio.value+'">'+frm.precio.value+'</td><td class="coef"><input type="hidden" name="coeficiente['+LineaNum+']" value="'+frm.coeficiente.value+'">'+frm.coeficiente.value+'</td><td class="desc"><input type="hidden" name="descu['+LineaNum+']" value="'+frm.descu.value+'">'+frm.descu.value+'</td><td class="subtotal"><input type="hidden" name="total['+LineaNum+']" value="'+frm.total.value+'">'+frm.total.value+'</td><td class="opciones"><button class="botonrojo" onclick="EliminarLinea('+LineaNum+' ,'+frm.total.value+');">Borrar</button></td></tr>'; jQuery('#LineasDocumento').append(Linea); frm.nombre.value = ''; frm.cantidad.value = ''; frm.precio.value = ''; frm.coeficiente.value = $("#coeficienteG").val(); frm.descu.value = $("#descuentoG").val();; frm.total.value = ''; $("#cantidad").focus(); ordenar() Guardar_articulos() return false; } } function EliminarLinea(rnum,descontar) { jQuery('#LineaNum'+rnum).remove(); var subtotal = $('input[name=Subtotal]').val(); if (!isNaN(descontar)){ subtotal -= parseFloat(descontar); }else{ return true; } $('input[name=Subtotal]').val(subtotal); } function Guardar_articulos() { var Darticulos = $("#Agarticulos").serialize(); $.ajax({ url: "guardar.php", data: Darticulos, type: 'post', beforeSend:function(data) { alert(Darticulos) }, success: function(data) { $().toastmessage('showToast', { text : 'Datos almacenados correctamente'+ data, sticky : true, type : 'success' }); }, error: function(data){ $().toastmessage('showToast', { text : 'Error al guardar '+ data, sticky : true, type : 'error' }); } }); };
Array ( [cosa] => presualqui [loque] => articulos [nuevo] => no [cantidad] => Array ( [1] => 1 [2] => 1 ) [nombre] => Array ( [1] => Disco Duro SSD 128Gb [2] => Toalla Intercalada Blanca 2500u ) [precio] => Array ( [1] => 180 [2] => 120 ) [coeficiente] => Array ( [1] => 1 [2] => 1 ) [descu] => Array ( [1] => 0 [2] => 0 ) [posicion] => Array ( [1] => Array ( [posicion] => 2 ) [2] => Array ( [posicion] => 1 ) ) [total] => Array ( [1] => 180 [2] => 120 ) )
como veis crea mil arrays en vez de uno solo ¿en que me estoy equivocando?
también quisiera quitar el primer resultado que esta vacío ( se supone que es donde meto los datos para que luego se vayan al formulario dinámico y claro siempre esta vacío )
muchas gracias a todos de antemano.