Para poder agregar filas a una tabla de manera dinámica deberemos primero crear el código html de la tabla y colocarle un identificador para reconocer que es aquella a quién vamos a comenzar agregar.
Código de la Tabla:
<table border="1" cellspacing="1" style="width: 100%; background-color: #FFFFFF; border-color: #000000;display:none;" id="ListMain">
<thead>
<tr>
<th style="width: 10%;">CÓDIGO</th>
<th style="width: 50%;">DESCRIPCIÓN</th>
<th style="width: 10%;">CANTIDAD</th>
<th style="width: 10%;">PRECIO</th>
<th style="width: 10%;">DESCUENTO</th>
<th style="width: 10%;">IMPORTE</th>
<th style="width: 5px;"></th>
</tr>
</thead>
<tbody></tbody>
</table>
<thead>
<tr>
<th style="width: 10%;">CÓDIGO</th>
<th style="width: 50%;">DESCRIPCIÓN</th>
<th style="width: 10%;">CANTIDAD</th>
<th style="width: 10%;">PRECIO</th>
<th style="width: 10%;">DESCUENTO</th>
<th style="width: 10%;">IMPORTE</th>
<th style="width: 5px;"></th>
</tr>
</thead>
<tbody></tbody>
</table>
No olvidemos que el identificador de la tabla se llama ListMain
A continuación creamos una función llamada agregarElemento:
function agregarElemento(){
var code_part = $("#code_part").val();
var reference_part = $("#reference_part").val();
var description_part = $("#description_part").val();
var quantity = $("#quantity").val();
var price = $("#price").val();
var descount = $("#descount").val();
if(code_part.length==0){
alert("Debe seleccionar un repuesto");
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#code_part").focus();
return false;
}
if(reference_part.length==0){
alert("Debe seleccionar un repuesto");
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#reference_part").focus();
return false;
}
if(description_part.length==0){
alert("Debe seleccionar un repuesto");
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#description_part").focus();
return false;
}
if(quantity.length==0 || quantity==0){
alert("Debe ingresar un valor mayor a cero o diferente de vacio");
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#quantity").focus();
return false;
}
if(price.length==0 || price==0){
alert("Debe ingresar un valor mayor a cero o diferente de vacio");
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#price").focus();
return false;
}
if(descount.length==0){
alert("No debe estar vacio");
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#descount").focus();
return false;
}
nDest = nDest + 1;
nDestC = nDestC + 1;
var myTable = document.getElementById('ListMain').insertRow(nDest);
var cell1 = myTable.insertCell(0);
var cell2 = myTable.insertCell(1);
var cell3 = myTable.insertCell(2);
var cell4 = myTable.insertCell(3);
var cell5 = myTable.insertCell(4);
var cell6 = myTable.insertCell(5);
var cell7 = myTable.insertCell(6);
cell1.innerHTML = "<input type='hidden' name='0formD" + nDestC + "_fk_cod_part' value='" + code_part + "'>" + reference_part;
cell2.innerHTML = "<input type='hidden' name='0formD" + nDestC + "_fk_cod_attention' value='1'>" + description_part;
cell3.innerHTML = "<input type='hidden' name='0formD" + nDestC + "_price_unit' value='" + price + "'>" + quantity;
cell4.innerHTML = "<input type='hidden' name='0formD" + nDestC + "_quantity' value='" + quantity + "'>" + price;
cell5.innerHTML = "<input type='hidden' id='0formD" + nDestC + "_amount' name='0formD" + nDestC + "_amount' value='" + parseFloat( price * quantity - descount ) + "'>" + descount;
cell6.innerHTML = "<input type='hidden' id='0formD" + nDestC + "_descount' name='0formD" + nDestC + "_descount' value='" + descount + "'>" + parseFloat( price * quantity - descount ).toFixed(2);
cell7.innerHTML = "<img src='images/icon/del_item.png' onclick='delItem(" + nDestC + ");' style='cursor:pointer' title='QUITAR ITEM'/>";
$('#CountAttention').val(nDestC);
var cssString = 'text-align:center;font-weight:normal;font-size:10px;';
myTable.style.cssText = cssString;
myTable.setAttribute('style',cssString);
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#ListMain").css({"display":"block","width":"100%"});
$("#ResultMain").css({"display":"block","width":"100%"});
calculateTotal();
cleanItem();
Tab('reference_part');
}
Recordemos que esto para poder ser llamado necesitamos de un evento y a continuación el siguiente codigo que traerá todo a funcionar correctamente:
<fieldset>
<legend align= "center" style="width: 100%;text-align: left;color: #999;">REPUESTO :::...</legend>
<table border="0" cellspacing="1" style="width: 100%;padding: 2px;">
<tr style="font-size: 10px;text-align: center;">
<th style="width: 10%;">- CÓDIGO -</th>
<th style="width: 50%;">- DESCRIPCIÓN -</th>
<th style="width: 10%;">- CANTIDAD -</th>
<th style="width: 10%;">- PRECIO -</th>
<th style="width: 10%;">- MEDIDA -</th>
<th style="width: 10%;">- DSCTO -</th>
<th style="width: 5px;"></th>
</tr>
<tr style="text-align: center;">
<td><input type="text" id="code_part" style="width: 96%;text-align: center;"/><input type="text" id="reference_part" style="width: 96%;text-align: center;"/></td>
<td><input type="text" id="description_part" style="width: 99%;"/></td>
<td><input type="text" id="quantity" style="width: 96%;text-align: center;" value="0" /></td>
<td><input type="text" id="price" style="width: 96%;text-align: center;" value="0.00" /></td>
<td>
<select id="measure" name="measure" style="width: 100%;" disabled="disabled">
<option value="">---</option>
<option value="1">Unidad</option>
</select>
</td>
<td><input type="text" id="descount" style="width: 96%;text-align: center;" value="0.00" onkeypress="return SoloDecimal(event, this)" onblur="confirmAddItem();"/></td>
<td><img src="images/icon/add_item.png" width="16px" title="AGREGAR ITEM" style="cursor: pointer;" onclick="confirmAddItem();"/></td>
</tr>
</table>
</fieldset>
Imágenes
Para agregar
Para eliminar
Espero haya sido de su agrada, cualquier consulta dejen sus comentarios, si no funciona el código pueden escribir opiniones y no se olviden recomendar esta entrada ya sea por facebook u otro medio social... Gracias
A continuación creamos una función llamada agregarElemento:
function agregarElemento(){
var code_part = $("#code_part").val();
var reference_part = $("#reference_part").val();
var description_part = $("#description_part").val();
var quantity = $("#quantity").val();
var price = $("#price").val();
var descount = $("#descount").val();
if(code_part.length==0){
alert("Debe seleccionar un repuesto");
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#code_part").focus();
return false;
}
if(reference_part.length==0){
alert("Debe seleccionar un repuesto");
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#reference_part").focus();
return false;
}
if(description_part.length==0){
alert("Debe seleccionar un repuesto");
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#description_part").focus();
return false;
}
if(quantity.length==0 || quantity==0){
alert("Debe ingresar un valor mayor a cero o diferente de vacio");
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#quantity").focus();
return false;
}
if(price.length==0 || price==0){
alert("Debe ingresar un valor mayor a cero o diferente de vacio");
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#price").focus();
return false;
}
if(descount.length==0){
alert("No debe estar vacio");
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#descount").focus();
return false;
}
nDest = nDest + 1;
nDestC = nDestC + 1;
var myTable = document.getElementById('ListMain').insertRow(nDest);
var cell1 = myTable.insertCell(0);
var cell2 = myTable.insertCell(1);
var cell3 = myTable.insertCell(2);
var cell4 = myTable.insertCell(3);
var cell5 = myTable.insertCell(4);
var cell6 = myTable.insertCell(5);
var cell7 = myTable.insertCell(6);
cell1.innerHTML = "<input type='hidden' name='0formD" + nDestC + "_fk_cod_part' value='" + code_part + "'>" + reference_part;
cell2.innerHTML = "<input type='hidden' name='0formD" + nDestC + "_fk_cod_attention' value='1'>" + description_part;
cell3.innerHTML = "<input type='hidden' name='0formD" + nDestC + "_price_unit' value='" + price + "'>" + quantity;
cell4.innerHTML = "<input type='hidden' name='0formD" + nDestC + "_quantity' value='" + quantity + "'>" + price;
cell5.innerHTML = "<input type='hidden' id='0formD" + nDestC + "_amount' name='0formD" + nDestC + "_amount' value='" + parseFloat( price * quantity - descount ) + "'>" + descount;
cell6.innerHTML = "<input type='hidden' id='0formD" + nDestC + "_descount' name='0formD" + nDestC + "_descount' value='" + descount + "'>" + parseFloat( price * quantity - descount ).toFixed(2);
cell7.innerHTML = "<img src='images/icon/del_item.png' onclick='delItem(" + nDestC + ");' style='cursor:pointer' title='QUITAR ITEM'/>";
$('#CountAttention').val(nDestC);
var cssString = 'text-align:center;font-weight:normal;font-size:10px;';
myTable.style.cssText = cssString;
myTable.setAttribute('style',cssString);
$("#CapaModeracion").dialog("close");
$("#sr").remove();
$("#ListMain").css({"display":"block","width":"100%"});
$("#ResultMain").css({"display":"block","width":"100%"});
calculateTotal();
cleanItem();
Tab('reference_part');
}
Recordemos que esto para poder ser llamado necesitamos de un evento y a continuación el siguiente codigo que traerá todo a funcionar correctamente:
<fieldset>
<legend align= "center" style="width: 100%;text-align: left;color: #999;">REPUESTO :::...</legend>
<table border="0" cellspacing="1" style="width: 100%;padding: 2px;">
<tr style="font-size: 10px;text-align: center;">
<th style="width: 10%;">- CÓDIGO -</th>
<th style="width: 50%;">- DESCRIPCIÓN -</th>
<th style="width: 10%;">- CANTIDAD -</th>
<th style="width: 10%;">- PRECIO -</th>
<th style="width: 10%;">- MEDIDA -</th>
<th style="width: 10%;">- DSCTO -</th>
<th style="width: 5px;"></th>
</tr>
<tr style="text-align: center;">
<td><input type="text" id="code_part" style="width: 96%;text-align: center;"/><input type="text" id="reference_part" style="width: 96%;text-align: center;"/></td>
<td><input type="text" id="description_part" style="width: 99%;"/></td>
<td><input type="text" id="quantity" style="width: 96%;text-align: center;" value="0" /></td>
<td><input type="text" id="price" style="width: 96%;text-align: center;" value="0.00" /></td>
<td>
<select id="measure" name="measure" style="width: 100%;" disabled="disabled">
<option value="">---</option>
<option value="1">Unidad</option>
</select>
</td>
<td><input type="text" id="descount" style="width: 96%;text-align: center;" value="0.00" onkeypress="return SoloDecimal(event, this)" onblur="confirmAddItem();"/></td>
<td><img src="images/icon/add_item.png" width="16px" title="AGREGAR ITEM" style="cursor: pointer;" onclick="confirmAddItem();"/></td>
</tr>
</table>
</fieldset>
Imágenes
Para agregar
Para eliminar
Espero haya sido de su agrada, cualquier consulta dejen sus comentarios, si no funciona el código pueden escribir opiniones y no se olviden recomendar esta entrada ya sea por facebook u otro medio social... Gracias