Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Paso de variable por click

Estas en el tema de Paso de variable por click en el foro de Javascript en Foros del Web. Hola , tengo un problema con un paso de variable de una tabla a un input. Código PHP: < table id = "Text1" >     < thead ...
  #1 (permalink)  
Antiguo 06/11/2014, 16:51
Avatar de asassa  
Fecha de Ingreso: julio-2008
Ubicación: En el DF ectuoso
Mensajes: 240
Antigüedad: 15 años, 9 meses
Puntos: 0
Busqueda Paso de variable por click

Hola , tengo un problema con un paso de variable de una tabla a un input.
Código PHP:
<table id="Text1">
    <
thead>
        <
tr>
        <
th>contenido1</th>
                <
th>contenido1</th>
        </
tr>
    </
thead>
</
table
lo que quiero hacer es que al hacer click en cuanquiera de los <th> de las tablas este contenido se pase a un input con id="Text1". Solo necesito que se pase uno de los valores contenidos, y al hacer click en el siguiente se borre el contenido del inputo y se coloque uno nuevo valor
<input id="Text1" type="text">
  #2 (permalink)  
Antiguo 06/11/2014, 20:11
 
Fecha de Ingreso: abril-2012
Mensajes: 124
Antigüedad: 12 años
Puntos: 3
Respuesta: Paso de variable por click

Aquí verás cómo se hace:
http://www.w3schools.com/jsref/event_onclick.asp
http://www.w3schools.com/jsref/prop_html_innerhtml.asp

Ten en cuenta que no puedes tener dos objetos con el mismo id

incorrecto:
<table id="Text1">
<input id="Text1" type="text">
__________________
Mi web de programación en PHP en construcción, claro. Un dia de esos pongo algo.
  #3 (permalink)  
Antiguo 07/11/2014, 09:04
 
Fecha de Ingreso: abril-2010
Mensajes: 16
Antigüedad: 14 años
Puntos: 0
Respuesta: Paso de variable por click

Con tu mismo ejemplo creo que lo siguiente funcionaria:
Código Javascript:
Ver original
  1. getElementsByTagName("th").forEach(function(element){
  2.     element.addEventListener("click",function(){
  3.         getElementById("Text1").value=element.innerHTML;
  4.     });
  5. });


Toma en cuenta o que te dijo danicasas, cambia tus IDs por ejemplo "Tabla1" y "Texto1".

Saludos
  #4 (permalink)  
Antiguo 07/11/2014, 09:20
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Paso de variable por click

Cita:
Iniciado por BlackJohan Ver Mensaje
Con tu mismo ejemplo creo que lo siguiente funcionaria:
Código Javascript:
Ver original
  1. getElementsByTagName("th").forEach(function(element){
  2.     element.addEventListener("click",function(){
  3.         getElementById("Text1").value=element.innerHTML;
  4.     });
  5. });
No puedes aplicar el método forEach en un conjunto de nodos, al menos no de esa forma, pues es un método de Array. Sin embargo, haciendo pequeños cambios, eso funcionará:

Código Javascript:
Ver original
  1. [].forEach.call(document.getElementsByTagName("th"), function(element){
  2.     element.addEventListener("click",function(){
  3.         document.getElementById("Text1").value = this.innerHTML;
  4.     });
  5. });

Por cierto, los métodos getElementsByTagName y getElementById, no pueden ser ejecutados si no son encadenados a document. No son métodos directos del objeto Window, por lo tanto, necesitan el encadenamiento.

Y si deseas que esto funcione en IE8 y versiones anteriores, deberás implementar el algoritmo que se muestra en este enlace.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 07/11/2014, 11:08
Avatar de asassa  
Fecha de Ingreso: julio-2008
Ubicación: En el DF ectuoso
Mensajes: 240
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Respuesta: Paso de variable por click

Hola, muchas gracias .

Ahora tengo otro problema, que espero me puedan ayudar. Utilizando el metodo anterior, de la javascript pero no puedo hacer distinciones. quisiera ver si puedo hacer distinción de dos tablas. esta vez sobre la etiqueta <td></td> y en su defecto su tubiera muchos <td></td>
Alguna idea de por que no se pude realizar el paso de los elementos td al input.
Como pude distinguir entre los <td> de las dos tablas.

Código PHP:
 a

<table class="tabla1" id="tabala1_ella">
            <
thead id="thead_ella">
                <
tr id="tr_ella">
                    <
th id="th_ella">nombre ella</th>
                    <
td>ana1</td>
                    <
td>ana2</td>
                </
tr>
            </
thead>
        </
table>
        <
input class="input1" id="Text1" type="text">
        
<
table  class="tabla2" id="tabala2_el">
            <
thead id="thead_el">
                <
tr id="tr_el">
                    <
th id="th_el">nombre ella</th>
                    <
td id="td_el">Roberto</td>
                </
tr>
            </
thead>
        </
table>
        <
input class="input1" id="Text2" type="text">
    </
section>  
<
script>
[].forEach.
call(document.getElementByTagName("td"), function(element){
    
element.addEventListener("click",function(){
        
document.getElementById("Text1").value this.innerHTML;
    });
});
</script> 

Última edición por asassa; 07/11/2014 a las 11:16
  #6 (permalink)  
Antiguo 07/11/2014, 12:30
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Paso de variable por click

Para que no te compliques más, hazlo así:

Código HTML:
Ver original
  1. <table class="tabla1" id="tabla1_ella">
  2.     <thead id="thead_ella">
  3.         <tr id="tr_ella">
  4.             <th id="th_ella">nombre ella</th>
  5.         </tr>
  6.     </thead>
  7.     <tbody>
  8.         <tr>
  9.             <td onclick = "fn('Text1', this.innerText)">ana1</td>
  10.             <td onclick = "fn('Text1', this.innerText)">ana2</td>
  11.         </tr>
  12.     </tbody>
  13. <input class="input1" id="Text1" type="text" />
  14.        
  15. <table  class="tabla2" id="tabla2_el">
  16.     <thead id="thead_el">
  17.         <tr id="tr_el">
  18.             <th id="th_el">nombre el</th>
  19.         </tr>
  20.     </thead>
  21.     <tbody>
  22.         <tr>
  23.             <td id="td_el" onclick = "fn('Text2', this.innerText)">Roberto</td>
  24.         </tr>
  25.     </tbody>
  26. <input class="input2" id="Text2" type="text" />

Y en la función:

Código Javascript:
Ver original
  1. function fn (id, valor){
  2.     document.getElementById(id).value = valor;
  3. }

De esta manera, cada vez que des un clic en alguna de las celdas de los <tbody> de las tablas, ejecutarás la funcion fn, a la cual le pasarás el id de la caja de texto y el valor a asignar. Por cierto, si vas a utilizar el id para identificar a las cajas de texto, celdas, filas y tablas, ya no son necesarias las clases.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: input, paso, valor, variable
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 14:47.