Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] array que se reinicia

Estas en el tema de array que se reinicia en el foro de Jquery en Foros del Web. Hola, estoy intentando pasar de una pagina a otra sin recargar un array usando jQuery y ajax, tiene un formulario dinámico para añadir lineas dinámicamente ...
  #1 (permalink)  
Antiguo 12/11/2015, 14:57
 
Fecha de Ingreso: octubre-2015
Ubicación: españa
Mensajes: 53
Antigüedad: 9 años, 1 mes
Puntos: 1
array que se reinicia

Hola, estoy intentando pasar de una pagina a otra sin recargar un array usando jQuery y ajax, tiene un formulario dinámico para añadir lineas dinámicamente al formulario, pero cuando pasa el array a la pagina que guarda en mysql se reinicia en cada linea con lo que solo guardo un resultado.

¿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> 
esto seria el javascript de las lineas dinámicas y del guardado

Código:
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' }); }
   });
};
y el resultado que me da es este:

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.

Etiquetas: reinicia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:30.