Foros del Web » Programando para Internet » Javascript »

obtener valor

Estas en el tema de obtener valor en el foro de Javascript en Foros del Web. buenas compañeros!!!!! tengo un problemita, cuando borro una fila de mi matriz, quiero obtener el numero de una de las celdas para restar y no ...
  #1 (permalink)  
Antiguo 31/10/2009, 13:41
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
obtener valor

buenas compañeros!!!!!


tengo un problemita, cuando borro una fila de mi matriz, quiero obtener el numero de una de las celdas para restar y no se como obtener dicho numero

este es mi codigo
Código HTML:
function borrarFila(button){

var fila = button.parentNode.parentNode;

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

tabla.removeChild(fila); 
con esto borro la fila, pero como hago para recuperar un datos de esta fila ???
gracias desde ya
  #2 (permalink)  
Antiguo 31/10/2009, 14:07
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: obtener valor

este tema esta relacionado a eliminar registro array, ¿de casualidad has revisado el ultimo mensaje?
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 01/11/2009, 08:50
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
Ayuddddaaaaaaaaa DOM

alguien me puede ayudar com DOM muchas gracias, visite una pagina de DOM pero no se bien como se utiliza, lo que yo deseo hacer es obterner el valor de una celda de una matriz
  #4 (permalink)  
Antiguo 01/11/2009, 09:07
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: obtener valor

para obtener un valor de una celda tienes que navegar por los nodos de esa celda, pero todo depende del contenido de cada celda. en el siguiente ejemplo, asumiendo que quieres leer el input contenido en la celda.
Código:
<td style="width: 65px;"><input name="pre_t[]" style="width: 65px;"/></td>
luego de obtener la referencia de la celda puedes usar la propiedad firstChild el cual hace referencia al primer nodo de la celda. aplicado al ejemplo sería el INPUT. otra alternativa, pero no muy recomendable debido a las diferencias de navegadores, es childNodes el cual es una coleccion de nodos contenido en el elemento.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 01/11/2009 a las 09:15
  #5 (permalink)  
Antiguo 01/11/2009, 09:18
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: obtener valor

bien, algo estoy tratando de hacer.
lo que pasas es que los input y formar el array los genero a taves de un boton. al costado de cada fila genero un boton que dice borrar, para borrar ese registro, y eso funciona bien.
Lo que necesito es al borrar ese registro se me descuente del precio total, se me entiende, con este codigo borro el registro.
yo necesito obtener dicho valor antes de que se borre. Tambien se me ocurrio hacer un for, pero no me da resultado jajaja

Código HTML:
function borrarFila(button){

var fila = button.parentNode.parentNode;

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

tabla.removeChild(fila); 
Si me puedes seguir dando una mano te re agradezco
  #6 (permalink)  
Antiguo 01/11/2009, 09:34
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: obtener valor

mira encontre esto y funciona a medias

Código HTML:
//es me muestra el index, y funciona re bien
var	fila1 = event.srcElement.parentElement.parentElement.rowIndex;

//pero ese por logica me tendria que mostrar la celda que yo quiero y me muestra alert en blanco.

var iform = document.all.ficheros.rows(fila1).cells(1).innerText;
en que me estoy equivocando????
  #7 (permalink)  
Antiguo 01/11/2009, 09:40
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: obtener valor

no voy a dar muchas vueltas, porque honestamente me parece que no estas siguiendo las indicaciones que te he sugerido en el tema anterior. lo siguiente es la funcion que necesitas para recalcular el precio.
Código:
function calcular(){ // declaracion de funcion
var pre = document.getElementsByName("pre_t[]"); // referencia de todos los elementos INPUTs que contiene el precio;
var total = 0; // variable temporera;
for(var i = 0; i < pre.length; i++) // recorrer por los elementos;
total += Number(pre[i].value); // se suman los valores;
document.datos.pagar.value = total; // asignar el total al INPUT;
}
si lees los comentarios veras que esas fueron las indicaciones que te ofreci en el ultimo mensaje del tema anterior. ahora lo unico que te queda es invocar la funcion calcular dentro de tus funciones borrarFila (por supuesto, al principio), y en tu funcion addFormField reemplazas la linea que suma los precios por la invocacion de calcular.


repuesta a mensaje #6,
ese codigo no te lo recomiendo, aparte que le veo cosas raras que solo funciona en iexplorer.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 01/11/2009 a las 09:45
  #8 (permalink)  
Antiguo 01/11/2009, 11:18
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: obtener valor

hola zerokilled, muchas gracias por tu ayuda, pero aun sigo teniendo un par de problemitas, no me lo suma, en la variable total siempre es cero (0), y en pre: me muestra objet. disculpa por lo anterior, lo que pasa es que estoy tratando de hacerlo por que hace bastante que vengo con lo mismo, muchas gracias por darme una mano.
  #9 (permalink)  
Antiguo 01/11/2009, 11:25
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: obtener valor

supongo que te muestra cero (0) porque el campo siempre tiene como valor 0. honestamente yo no se como tu haces para que el campo precio total adquiera un valor, supongo que lo haces con php. si le pones un valor al campo y luego presionar insertar, veras que se suman.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #10 (permalink)  
Antiguo 01/11/2009, 11:29
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: obtener valor

tienen valor, yo pense que era por eso, por ejemplo la variable pre me muestra [objet], y por logica total me muestra 0, gracias nuevamente por la ayuda
  #11 (permalink)  
Antiguo 01/11/2009, 11:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: obtener valor

ahh mira tambien este me da cero (0)

alert (pre.length)
  #12 (permalink)  
Antiguo 01/11/2009, 12:03
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: obtener valor

te muestro lo que tengo porque honestamente no se que estas haciendo. el codigo esta modificado porque el codigo original contiene php y por el momento no trabajo con php. los alert son para mostrarte la informacion actual mientras recorre los campos. recuerda ingresar un numero en el campo "precio total" antes de presionar "insertar".
Código:
<html><body><script type="text/javascript">
var i = rows = 0;
function fEscribeDir(){
addFormField();
//document.formu1.numficheros.value=i;
i++;
}

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.getElementById("txtfecha").value;
cod.value = document.datos.txtcod.options[document.datos.txtcod.selectedIndex].text;
det.value = document.datos.txtdet.value;
tal.value = document.datos.txt_talle.value;
sto.value = document.datos.stock.value;
can.value = document.datos.cant.value;
pre.value = document.datos.cost_u.value;
des.value = document.datos.desc.value;
pre_t.value = document.datos.txt_tot.value;
use.value = document.datos.txtuser.options [document.datos.txtuser.selectedIndex].text;
f_p.value = document.datos.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.datos.pagar.value = parseInt(pre_t.value) + parseInt(document.datos.pagar.value)
calcular();
}


function borrarFila(button){
var fila = button.parentNode.parentNode; 
var tabla = fila.parentNode;
tabla.removeChild(fila); 
calcular();
}

function calcular(){
for(var pre = document.getElementsByName("pre_t[]"), total = i = 0; i < pre.length; i++){
total += Number(pre[i].value);
alert("pre[" + i + "] con valor " + pre[i].value);
}
document.datos.pagar.value = total;
alert("total de campos: " + pre.length + "\nel total computado es: " + total);
}
</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%" ><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 fecha_servidor" 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
	  <option id="centroid" value="cantidad_paq">Codigo 0000</option>
	  <option id="centroid" value="cantidad_paq">Codigo 0000</option>
	  <option id="centroid" value="cantidad_paq">Codigo 0000</option>
	  <option id="centroid" value="cantidad_paq">Codigo 0000</option>
	  <option id="centroid" value="cantidad_paq">Codigo 0000</option>
	  <option id="centroid" value="cantidad_paq">Codigo 0000</option>
        </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</option>
	     <option  value="usuario">usuario</option>
	</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%" 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>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #13 (permalink)  
Antiguo 01/11/2009, 12:16
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: obtener valor

Cita:
te muestro lo que tengo porque honestamente no se que estas haciendo. el codigo esta modificado porque el codigo original contiene php y por el momento no trabajo con php. los alert son para mostrarte la informacion actual mientras recorre los campos. recuerda ingresar un numero en el campo "precio total" antes de presionar "insertar".
bien, te explico estoy haciendo un modulo de ventas, lo que hace esto es que elija un codigo, ese codigo es traido de la bd, (que es lo que esta en php), luna vez que yo elegí el codigo, me muestra, el precio unitario, el stock, etc, etc, luego una vez que yo le pongo la cantidad, me calcula solo el precio total.

Bueno ahora lo que hace el boton insertar, es inserta un registro en la parte inferior de la tabla que es todo lo que esta hecho en javascript o sea que el valor de (pre_t) siempre esta, se entiende un poquito lo que deseo hacer???
bien yo aplique los cambios que hiciste, y me sigue dando cero, es como que no encuentra el pre_t[] o algo haci.
  #14 (permalink)  
Antiguo 01/11/2009, 12: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: obtener valor

dado que no tengo la informacion de la base de datos, y aunque lo tuviera no hay nada que pueda hacer, te sugiero que ensambles todo en servidor y menciones la direccion porque asi como lo explicas no se me ocurre nada. en adicion, si hay algun paso especial señalalo, como por ejemplo como obtener la informacion de la base de datos.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #15 (permalink)  
Antiguo 01/11/2009, 12:35
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: obtener valor

bueno, pero no se muy bien como se hace eso

para se un poco mas puntual, lo que me has colocado esta perfecto, sirve, pero, no se como obtener los valores de el array pre_t[]; ahh de casualidad si no te molesta, tenes msn, gmail o algo por el estilo para chatear?? entonces se puede hacer mas rapido, queres??
  #16 (permalink)  
Antiguo 01/11/2009, 13:25
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: obtener valor

Cita:
bueno, pero no se muy bien como se hace eso
¿y como rayos hasta el momento has estado haciendo la prueba? ¿en local? seria cuestion, o al menos eso creo, de solicitar un servicio de hosting (puede ser gratuito) que soporte las tecnologias que estes usando, o sea PHP y me imagino que MySQL.

Cita:
no se como obtener los valores de el array pre_t[];
te lo he estado tratando de decir desde el tema anterior, usa el metodo document.getElementsByName y a este le pasas como parametro el valor asignado al atributo name de los elementos que quieres recuperar. luego con un bucle recorres la coleccion para leer la propiedad value. un ejemplo claro lo tienes en la funcion que te escribi.

Cita:
ahh de casualidad si no te molesta, tenes msn, gmail o algo por el estilo para chatear?? entonces se puede hacer mas rapido, queres??
lo lamento mucho por ti... primero que para eso esta el foro, para que todos se puedan nutrir. y segundo he tratado de ser paciente contigo pero estoy desconcertado por el tema.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 01/11/2009 a las 13:38
  #17 (permalink)  
Antiguo 01/11/2009, 14:03
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 5 meses
Puntos: 20
Respuesta: obtener valor

eh vuelto compañero, ya solucione mi gran problema , gracias a tu ideas, mira es es el codigo que use

Código HTML:
function valor(nfil)
{

t = document.all.pagar.value;
 
 for (i=0 ; i<precio_tot.length; i++)
 {	
 
 	if (i == nfil -1 )
 	{
 		var t = parseInt(t) - parseInt(precio_tot[i])  ;
 	}
 	
  
 }
 document.datos.pagar.value = t;
	
}

muchas gracias y perdón por las molestias ocasionadas. karma para ti
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 09:52.