Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: MunsenTidoco en 21 de Octubre 2016, 01:40
-
Hola. Estoy tratando de hacer un formulario para editar, insertar y eliminar notas de venta en un sistema php/mysql y jquery.
La cabecera de la nota está bien, donde tengo problema es en los detalles. Estos están en una tabla donde tengo el row a clonar (en caso de agregar más productos) y en el row primero y/o repetitivo donde se muestran los detalles existentes (en caso de edición).
Nombro cada id y name del row (producto, venta, precio e importe) con un sufijo para identificarlos y hacer las operaciones y quedan así funcion calcular_1,venta_1,funcion calcular_2, venta_2, etc.
Cabe mencionar que el row a clonar tiene sufijos "_0" en sus id y names.
<?php do { ?>
<?php $cnt1++; ?>
<script type="text/javascript">
function calcular_<?php echo $cnt1; ?>() {
v_<?php echo $cnt1; ?>=0;
p_<?php echo $cnt1; ?>=0;
i_<?php echo $cnt1; ?>=0;
if(document.getElementById('venta_<?php echo $cnt1; ?>').value>0)
{
v_<?php echo $cnt1; ?>=document.getElementById('venta_<?php echo $cnt1; ?>').value;
p_<?php echo $cnt1; ?>=document.getElementById('precio_<?php echo $cnt1; ?>').value;
i_<?php echo $cnt1; ?>=v_<?php echo $cnt1; ?>*p_<?php echo $cnt1; ?>;
document.getElementById('importe_<?php echo $cnt1; ?>').value=i_<?php echo $cnt1; ?>;
}
}
</script>
y los imputs vienen así, consecutivos por php
<td><input type="text" name="venta_<?php echo $cnt1; ?>" id="venta_<?php echo $cnt1; ?>" onBlur="javascript:calcular_<?php echo $cnt1; ?>()" size="7" />
Hasta aquí todo funciona, las operaciones, la carga de datos, borrado y editado.
Pero si quiero clonar el row, me los clona todos con el mismo número inicial (0). Quedando funcion calcular_0, venta_0, venta_0, etc.
Estoy intentando que me cambie todos los "_0" que trae el row a clonar por el consecutivo. Que queden así "_4", "_5", "_6", etc.
Para eso estoy usando este código al clonarlos, pero no me funciona. Ojalá haya quien me ayude a corregirlo.
<script type="text/javascript">
$(function fixIds(elem, cnt1) {
// Cambio el sufijo de 0 por el siguiente consecutivo cntl
$(elem).replace("_0", "_" + cnt1);
}
var cloneCnt1 = <?php echo $cnt1; ?>;
// Clona la fila oculta que tiene los campos base, y la agrega al final de la tabla
$("#agregar").on('click', function(){
var row = $("#tabla tbody tr:eq(0)").clone().removeClass('fila-base');
fixIds(row, cloneCnt1++);
appendTo("#tabla tbody");
});
// Evento que selecciona la fila y la elimina
$(document).on("click",".eliminar",function(){
var parent = $(this).parents().parents().get(0);
$(parent).remove();
});
);
</script>
-
Buenas yo iría por pasos.
Primer paso: después de var row = $("#tabla tbody tr:eq(0)").clone().removeClass('fila-base');
Comprobar si row contiene lo que deseas
Segundo paso
Crear una variable por ejemplo: nuevoNumero = cloneCnt1++;
y comprobar si nuevoNumero contiene el número que deseas.
Si es así, ya solo te queda el último paso, que es reemplazar el número que lleva row por el nuevo número.
Salu2