Foros del Web » Programando para Internet » Javascript »

eliminar registro de un array

Estas en el tema de eliminar registro de un array en el foro de Javascript en Foros del Web. Buenas companeros!!!!!!! le cuento cual es mi problemas, toy tratando de hacer un modulo de ventas donde este elege el articulo, los descuentos, las cantidades, ...
  #1 (permalink)  
Antiguo 27/10/2009, 07:23
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
eliminar registro de un array

Buenas companeros!!!!!!!


le cuento cual es mi problemas, toy tratando de hacer un modulo de ventas donde este elege el articulo, los descuentos, las cantidades, el precio total, etc. etc. y tengo un boton que dice insertar, este lo que hace es copiar todo lo que elegi y me lo coloca abajo, entonces asi, esto me va quedando como una factura, a cada lado de los elementos insertados tiene un boton que dice borrar, por las dudas que no quiera ese elemento, el problema es que cuando yo pulso borrar, se borra el elemento, pero no se descuenta del total que yo tengo abajo, que es un text con la suma de todo los precio totales.

Lo que yo quiero es que cuando coloque borrar, me elimine la fila y me descuente el precio total del precio final, aca les muestro el codigo que tengo para borrar la fija

Código:
function borrarFila(button){

var fila = button.parentNode.parentNode; 
var tabla = document.getElementById('ficheros').getElementsByTagName('tbody')[0]; 



tabla.removeChild(fila); 
}
  #2 (permalink)  
Antiguo 27/10/2009, 07:30
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: eliminar registro de un array

lo que te recomiendo es tener una funcion explicitamente para calcular y este lo invocas en cada cambio (agregar o eliminar) que hagas a la factura.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 27/10/2009, 09:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: eliminar registro de un array

Ahh bien, pero como, por que cuando yo presiono insert me inserta el registro, (no en la bd) y ahi me hace el calculo, pero no se como se como hacer esa funcion con matrices, si tienes algun ejemplo te lo agradeceria. Saludos
  #4 (permalink)  
Antiguo 27/10/2009, 10:01
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: eliminar registro de un array

o sea, me estas dando la impresion que tu no escribistes los codigos. si lo escribistes, entonces es cuestion de separar las instrucciones que hacen el calculo de la funcion principal hacia una nueva funcion. despues de todo no puedo decirte como es por dos razones, no se como tienes el codigo y tampoco estoy muy claro como estas haciendo el calculo con array.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 27/10/2009, 10:23
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: eliminar registro de un array

mira los codigos los escribo yo, lo que quise decir recien es que me des un ejemplo de como hacer el calculo nada mas, lo que hace esto es tener una tabla donde tiene varias opciones, por ejemplo:


fecha | codigo | detalle| precio | desc | precio tot | usuario |forma_pago ||| insertar

cuando yo hago presiono insertar lo que hace esto es toda las opciones que elegir, crear a traves de jscript input a estos input (ejemplo 'txttotal[]') de esa forma los llamo, al final de creal el input, lo que hago es decir que sume lo que tiene el input de precio_final = precio_tot + precio_final ( o sea que el precio final lo utilizo como un contador) aca en ningun momento toco los valores de array, lo que yo no se como hacer es cuando se elimine o se cambie el valor del array se me modifique automaticamente el precio_final. se entiende??? muchas gracias por tu ayuda.
  #6 (permalink)  
Antiguo 27/10/2009, 12:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: eliminar registro de un array

aun todavia no lo tengo muy claro. ¿que representa cada elemento del array? estoy entendiendo otra cosa pero no voy a mencionarlo porque me parece que nada tiene que ver. por favor, muestra tu codigo para tener una idea mas clara, asi no doy vuelta tratando de entenderte. hubiera llamado al adivino pero no creo que haga falta si suples el suficiente codigo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 27/10/2009, 14:10
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: eliminar registro de un array

este es mi codigo
Código PHP:
function fEscribeDir()
{


addFormField(document.formu1,'text',+i);
//document.formu1.numficheros.value=i;
i=i+1;
}
      
function addFormField (form, fieldType, fieldName, fieldValue)
{

    
rows = parseInt(rows) + 1;

     //var fila = document.createElement("TR");

 var cont = document.getElementById("cont");

 var fila = document.createElement('TR');  //fila

var cel1 = document.createElement("TD"); //celda1
var cel2 = document.createElement("TD"); //celda1
var cel3 = document.createElement("TD"); //celda1
var cel4 = document.createElement("TD"); //celda1
var cel5 = document.createElement("TD"); //celda1
var cel6 = document.createElement("TD"); //celda1
var cel7 = document.createElement("TD"); //celda1
var cel8 = document.createElement("TD"); //celda1
var cel9 = document.createElement("TD"); //celda1
var cel10 = document.createElement("TD"); //celda1
var cel11= document.createElement("TD"); //celda1
var cel12 = document.createElement("TD"); //celda1


var tabla = document.getElementById("ficheros").tBodies[0];



var fec = document.createElement('INPUT');
var cod = document.createElement('INPUT');
var det = document.createElement('INPUT');
var tal = document.createElement('INPUT');
var sto = document.createElement('INPUT');
var can = document.createElement('INPUT');
var pre = document.createElement('INPUT');
var des = document.createElement('INPUT');
var pre_t = document.createElement('INPUT');
var use = document.createElement('INPUT');
var f_p = document.createElement('INPUT');
var boton = document.createElement('INPUT');

boton.setAttribute('type','button');
boton.setAttribute('value','Borrar');

boton.onclick=function(){borrarFila(this);}

fec.value = document.all.txtfecha.value;
cod.value = document.all.txtcod.options [document.all.txtcod.selectedIndex].text;
det.value = document.all.txtdet.value;
tal.value = document.all.txt_talle.value;
sto.value = document.all.stock.value;
can.value = document.all.cant.value;
pre.value = document.all.cost_u.value;
des.value = document.all.desc.value;
pre_t.value = document.all.txt_tot.value;
use.value = document.all.txtuser.options [document.all.txtuser.selectedIndex].text;
f_p.value = document.all.txtfp.value;


fec.setAttribute("name","fec[]" );
cod.setAttribute("name","cod[]" );
det.setAttribute("name","det[]" );
tal.setAttribute("name","tal[]" );
sto.setAttribute("name","sto[]" );
can.setAttribute("name","can[]" );
pre.setAttribute("name","pre[]" );
des.setAttribute("name","des[]" );
pre_t.setAttribute("name","pre_t[]" );
use.setAttribute("name","use[]" );
f_p.setAttribute("name","f_p[]" );

fec.style.width="70px";
cod.style.width="120px";
det.style.width="375px";
tal.style.width="45px";
sto.style.width="45px";
can.style.width="60px";
pre.style.width="55px";
des.style.width="60px";
pre_t.style.width="65px";
use.style.width="145px";
f_p.style.width="80px";



cel1.style.width="70px";
cel2.style.width="120px";
cel3.style.width="375px";
cel4.style.width="45px";
cel5.style.width="45px";
cel6.style.width="60px";
cel7.style.width="55px";
cel8.style.width="60px";
cel9.style.width="65px";
cel10.style.width="145px";
cel11.style.width="80px";
cel12.style.width="50px";

cel2.align ="center";





cel1.appendChild(fec);
cel2.appendChild(cod);
cel3.appendChild(det);
cel4.appendChild(tal);
cel5.appendChild(sto);
cel6.appendChild(can);
cel7.appendChild(pre);
cel8.appendChild(des);
cel9.appendChild(pre_t);
cel10.appendChild(use);
cel11.appendChild(f_p);
cel12.appendChild(boton);


fila.appendChild(cel1); 
fila.appendChild(cel2); 
fila.appendChild(cel3); 
fila.appendChild(cel4); 
fila.appendChild(cel5); 
fila.appendChild(cel6); 
fila.appendChild(cel7); 
fila.appendChild(cel8); 
fila.appendChild(cel9); 
fila.appendChild(cel10); 
fila.appendChild(cel11); 
fila.appendChild(cel12);
tabla.appendChild(fila);


    //div.appendChild(input);
    //document.getElementById('ficheros').appendChild(div);
//document.all.txtfec[i]= fecha;

document.all.pagar.value = parseInt(pre_t.value) + parseInt(document.all.pagar.value)

}


function borrarFila(button){

var fila = button.parentNode.parentNode; 
var tabla = document.getElementById('ficheros').getElementsByTagName('tbody')[0]; 



tabla.removeChild(fila); 
}


</script>
<link rel="stylesheet" type="text/css" href="estilos.css">

<style>
<!--
.Estilo2 {
font-size: 25px; 
COLOR: black;
}

-->

</style>

</head>

<body class="fondo">

<form name="datos" action="ventas.php" method="POST">
<input name="cont" type="hidden" id="cont" value="0" >    

<table width="100%" border="3">
    <tr>
        <td class="nombrecampo"><span class="Estilo1">FECHA</span></td>
        <td class="nombrecampo"><span class="Estilo1">Nº CODIGO</span></td>
        <td class="nombrecampo"><span class="Estilo1">DETALLE</span></td>
        <td class="nombrecampo"><span class="Estilo1">TALLE</span></td>
        <td class="nombrecampo"><span class="Estilo1">STOCK</span></td>
        <td class="nombrecampo"><span class="Estilo1">CANTIDAD</span></td>
        <td class="nombrecampo"><span class="Estilo1">PRECIO U.</span></td>
        <td class="nombrecampo"><span class="Estilo1">DESC.</span></td>
        <td class="nombrecampo"><span class="Estilo1">PRECIO TOTAL</span></td>
        <td class="nombrecampo"><span class="Estilo1">USUARIO</span></td>
        <td class="nombrecampo"><span class="Estilo1">FORMA PAGO</span></td>
    </tr>
        
    <tr>
    <td  class="nombrecampo"><span class="Estilo1"><input name="txtfecha" id="txtfecha" type="text" size="7" maxlength="10"value="<?php echo $fec fecha_servidor_total() ?>" onKeyUp="mascara(this,'/',patron,true);" onBlur=" esFechaValida(this);"  ></span></td>    
    
    <td class="nombrecampo"><span class="Estilo1" >
        <select name="txtcod" onclick='ver_cod()'  tabindex="3">
        <option value="Seleccione Tipo" selected>Ingrese Codigo
        
        <?php
        
// CODIGO PHP
        // Contruimos el primer combo con los valores de la tabla 'centros'.
        
$dbConec_con_pass();
        
$cons_centros = @pg_exec($db"SELECT * FROM stock inner join prendas on stock.idprenda = prendas.idprenda ;");
        
        for (
$k 0$k pg_numrows($cons_centros); ++$k)
        {
        
$centro = @pg_fetch_object($cons_centros$k);
        echo 
"              <option title=\"".$centro->detalle."\" id=\"".$centro->p_vta."\" value=\"".$centro->cant_pa."\">".$centro->codigo."\n";
        }
        
?>
        </select></span>
    </td>   
        
        
        <TD class="nombrecampo"><span class="Estilo1"><input type="text" name="txtdet" size="50"></span></TD>
        <td class="nombrecampo"><span class="Estilo1"><input type="text" name="txt_talle" size="3"></span></td>
        
        <TD class="nombrecampo"><span class="Estilo1"><input type="text" name="stock" size="3" value="1"></span></TD>
        
        <TD class="nombrecampo"><span class="Estilo1"><input type="text" name="cant" size="4" value="1"></span></TD>
                
        <TD class="nombrecampo"><span class="Estilo1"><input type="text" name="cost_u" size="5"></span></TD>
        
        <TD class="nombrecampo"><span class="Estilo1"><input type="text" name="desc" size="5" onBlur="porc()"></span></TD>
        
        <TD class="nombrecampo"><span class="Estilo1"><input type="text" name="txt_tot" size="5" value="0"></span></TD>
        
        
        
        <td class="nombrecampo"><span class="Estilo1" >
           <select name="txtuser" onclick='ver_user()'  tabindex="3">
              <option value="Seleccione usuario" selected>Seleccione Usuario
            
            <?php
            
// CODIGO PHP
             // Contruimos el primer combo con los valores de la tabla 'centros'.
            
$dbConec_con_pass();
             
$cons_centros = @pg_exec($db"SELECT * FROM USUARIO;");
             
             for (
$k 0$k pg_numrows($cons_centros); ++$k)
             {
              
$centro = @pg_fetch_object($cons_centros$k);
              echo 
"              <option  value=\"".$centro->idusuario."\">".$centro->usuario."\n";
             }
            
?>
                      </select></span>
        </td>
       <label>         
        <td class="nombrecampo" ><span class="Estilo1">
                <select name="txtfp">
                    <option value="CONTADO">CONTADO</option>
                    <option value="TARJETA">TARJETA</option>
                </select>
        </td></label>
        
       <td class="nombrecampo"><span class="Estilo1"><input type="hidden" name="txtcod_num"></span></td>
        
        <td class="nombrecampo"><span class="Estilo1"><input type="button" value="insertar" name="txtgrabar" onClick="javascript: fEscribeDir();"></span></td>
        
        </tr>
    </table>
    &nbsp;
    &nbsp;
    &nbsp;
    <table width="100%" border="1" id="ficheros" class="ingresodatos" align="center">
        <TD colspan="12" align="center" style="font-size:20px" style="color:#000033" ><b>DETALLE</b><TD>
    </table>
    &nbsp;
    &nbsp;
    &nbsp;
    <table align="right">
    <td ><span class="Estilo2"><b>TOTAL PESOS:  $<b><input style="font-size:24px" size="4" style="color:black;" type="text" name="pagar" value="0" ></span></td>
    
    <td><input type="submit" id="enviar"></td>
    
    </table>
    

</form>


 

</body>
</html>
  #8 (permalink)  
Antiguo 30/10/2009, 12:22
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: eliminar registro de un array

es evidente que el problema es que solo puedes sumar. seria ideal si solo fueras agregar elementos pero en tu caso, como ya venia diciendo, es mejor tener una funcion aparte para recalcular los valores cuando suceda cualquiera de las acciones, agregar o eliminar. la funcion se compone de tomar referencia de todos los elementos y leer su valor para sumarse. para tomar referencia de todos los elementos que contiene el precio, utiliza el metodo document.getElementsByName pasandole como parametro el nombre del campo. este metodo te devolvera una coleccion de elementos (parecido a un array) el cual puedes recorrer por sus elementos con un bucle. en este bucle vas sumando los valores en una variable temporera y final la asignas al campo que retiene la suma total.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 30/10/2009 a las 13:00 Razón: correccion de mensaje, un poco confuso
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 13:16.