Foros del Web » Programando para Internet » Javascript »

Campos en arbol dinamicamente

Estas en el tema de Campos en arbol dinamicamente en el foro de Javascript en Foros del Web. CAMPOS EN ARBOL DINAMICAMENTE ¿como es posible hacerlo?. Tengo algo desarrollado pero no he podido generar una anidacion mas alla de la primera anidacion hija. ...
  #1 (permalink)  
Antiguo 16/05/2011, 20:35
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Campos en arbol dinamicamente

CAMPOS EN ARBOL DINAMICAMENTE

¿como es posible hacerlo?. Tengo algo desarrollado pero no he podido generar una anidacion mas alla de la primera anidacion hija. Luego, al anidarla mas alla no puedo llegar a hacerlo... Mi interes sería ir creando anidaciones en primera categoria, y luego las sucesivas categorias que puedan ir naciendo en la medida que se eligen crearlas. Pero tambien que uno pudiese elegir qué categoria habria que crear libremente ....

Código PHP:
<script>
function 
fnAppend(){
   var 
oNewNode document.createElement("LI");
   
oList.appendChild(oNewNode);
   
oNewNode.innerText="List node 5";

    var 
oNewNode1 document.createElement("UL");
           
oList.appendChild(oNewNode1);
          
oNewNode1.innerText="List node 111";

    var 
oNewNode2 document.createElement("UL");
           
oList.appendChild(oNewNode2);
          
oNewNode2.innerText="List node 222";



   var 
oNewNode3 document.createElement("LI");
   
oList.appendChild(oNewNode3);
   
oNewNode3.innerText="List node 333";

    var 
oNewNode4 document.createElement("DL");
           
oList.appendChild(oNewNode4);
          
oNewNode4.innerText="List node 444";

    var 
oNewNode5 document.createElement("DT");
    var 
oNewNode6 document.createElement("DD");
           
oList.appendChild(oNewNode5);
        
oList.appendChild(oNewNode6);
          
oNewNode5.innerText="List node 555";
        
oNewNode6.innerText="List node 666";


    var 
oNewNode7 document.createElement("dd");
           
oList.appendChild(oNewNode7);
          
oNewNode7.innerText=tuno.value;

    var 
oNewNode9 document.createElement("ol");
           
oList.appendChild(oNewNode9);
          
oNewNode9.innerText="";


     var 
campo document.createElement("input");
        
campo.id 'agregacampo000000000000000001'
           
oList.agregacampo000000000000000001.appendChild(campo);
        
campo.innerText=tuno.value;


    var 
espacio document.createElement("dd");
           
oList.appendChild(espacio);
          
espacio.innerText="";



    var 
dd document.createElement("dd");
           
oList.appendChild(dd);
    var 
oNewNode8 document.createElement("input");
           
oList.appendChild(oNewNode8);
          
oNewNode8.innerText="";



}
</script>
<body>
<ul ID = oList>
<input type="text" name="tuno" ID=agregacampo01 value ="ffffffffffffffff" />
<li>List node 1</li>
<li>List node 2</li>
<li>List node 3</li>
<li>List node 4</li>

</ul>

<input
   type = "button"
   value = "Append Child"
   onclick = "fnAppend()" />






</body> 
  #2 (permalink)  
Antiguo 16/05/2011, 21:15
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: Campos en arbol dinamicamente

buenas,
la verdad no comprendo muy bien lo que quieres hacer. probe el codigo pero como estoy viendo cosas que no entiendo lo que son, no me es posible deducir lo que intentas hacer. tampoco me he fijado mucho en el codigo pero la consola reporta varios errores, parece que principalmente de referencias. por ejemplo, en el script usas la variables tuno y oList las cuales no estan declaradas. te recomiendo que utilices la consola de error del navegador para analizar el codigo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 16/05/2011, 21:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Campos en arbol dinamicamente

¿Te funciona esto?
Código PHP:
<html>
<
head>
<
script type="text/javascript">
var 
div null;
var 
ul null;
var 
1;

function 
addNextChild(){
    if(
div == null){ 
        
div document.getElementById('tree');
        
ul document.createElement('ul');
        
ul.id 'subTree';
        
div.appendChild(ul);
    }
    var 
li document.createElement('li');
    
li.appendChild(document.createTextNode('foo' n++));
    
ul.appendChild(li);
}

</script>
</head>
<body>
<div id="tree">
<a href="#" onclick="addNextChild(); return false;">Añadir</a>
</div>
</body>
</html> 
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 16/05/2011, 22:50
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: Campos en arbol dinamicamente

El codigo no se lo entiendo en lo absoluto, pero si entendi sus palabras deberia ser algo parecido a esto:

Código Javascript:
Ver original
  1. var boton = '<a href="#" onclick="nueva_categoria(this);return false;">AÑADIR SUBCATEGORIA</a>';
  2. function nueva_categoria(aqui){
  3. var contenedor = aqui.parentNode.getElementsByTagName("ul");
  4. if(contenedor.length == 0){
  5.     aqui.parentNode.innerHTML += "<ul><li>Una hija " + boton + "</li></ul>";
  6. } else {
  7.     contenedor[0].innerHTML += "<li>Una hija " + boton + "</li>";
  8. }
  9. }

Aqui lo puede ver funcionando: http://jsfiddle.net/RgNnj/
  #5 (permalink)  
Antiguo 17/05/2011, 14:02
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Campos en arbol dinamicamente

hijo de foo3, y foo5 y foo6 y foo7 fuesen hijos de foo4... y asi yi pudiese ir aramando una serie de categorias de clasificacion. Eso luego lo voy a hacer con inputs pero lo aplicaré una vez que pueda ir anidando dentro de otros eventos ya anidados...

ejemplo

foo1
foo2
foo3
foo4
foo5
foo6
foo7


InKarC
voy a ver lo que expones, ya que tengo problemas para copiar el codigo.... pero por lo visto, vas generando listas dentro de ul, ...pero ya lo pruebo....
  #6 (permalink)  
Antiguo 17/05/2011, 14:03
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Campos en arbol dinamicamente

uy.... lo anterior de foo's deberia ser entendido en categorias....

ejemplo

Código PHP:
foo1
foo2
foo3
    foo4
        foo5
        foo6
        foo7
            foo8
                                                        foo9
                                                                            foo10
foo11
foo12
    foo13
        foo14
    foo15
    foo16 
  #7 (permalink)  
Antiguo 17/05/2011, 15:53
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Campos en arbol dinamicamente

Modifique esto.... aqui esta como constante, pero la idea sería que cada foo o foos se entendiese como input... pero lo que intento es que cada nivel de jerarquia pueda ser definido libremente (o sea que uno pueda decidir si se le coloca en primer o seguno nivel o tercera categoria...a cada uno de ellos...o en primera categoria como una rama nueva)


Código PHP:
<html>
<
head>
<
script type="text/javascript">
var 
div null;
var 
ul null;
var 
1;

function 
addNextChild(){
    if(
div == null){ 
        
div document.getElementById('tree');
        
ul document.createElement('ul');
        
ul.id 'subTree';
        
div.appendChild(ul);
    }
    var 
li document.createElement('li');
    
li.appendChild(document.createTextNode('foo' n++));
    
ul.appendChild(li);

        var 
lele document.createElement('ol');
    
lele.appendChild(document.createTextNode('foos' n++));
    
ul.appendChild(lele);
    
}

</script>
</head>
<body>
<div id="tree">
<a href="#" onclick="addNextChild(); return false;">Añadir</a>
</div>
</body>
</html> 
  #8 (permalink)  
Antiguo 17/05/2011, 15:57
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: Campos en arbol dinamicamente

¿y lo que buscas no es parecido a lo que mostro @inkarc?
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 17/05/2011, 17:03
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Campos en arbol dinamicamente

ah si... disculpa... habia visto solo la otra solucion que por tiempos de trabajo estaba colapsado.... y recien la vi....
es excelente Inkarc... es justamente lo que necesitaba....lo unico que voy a agregarle es un input dinamico en vez de la leyenda 'AÑADIR SUBCATEGORIA'....para asi poder ingresarle datos numericos y de texto.....

gracias Inkarc y gracias tambien zerokilled ya que me recordaste....
y tambien a los demas....
  #10 (permalink)  
Antiguo 17/05/2011, 18:11
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Campos en arbol dinamicamente

lo hice asi, pero tengo el problema que no me reconoce como variable 'exe'. El problema es que me gustaría poder tenerlo en forma dinamica para poder enviar los valores de cada campo a una tabla, pero no me reconoce el susodicho...

Código PHP:
<html>
<
head>
<
script type="text/javascript">

var 
boton '<a href="#" onclick="nueva_categoria(this);return false;">AÑADIR 

SUBCATEGORIA</a> [COLOR="Blue"]<INPUT type="text" name="nombre" value="">[/COLOR]'
;

[
B][COLOR="Red"]var exe [/COLOR][/B]= document.createElement("input").innerText ="" ;


function 
nueva_categoria(aqui){
var 
contenedor aqui.parentNode.getElementsByTagName("ul");
if(
contenedor.length == 0){
    
aqui.parentNode.innerHTML += "<ul><li>Una hija " boton "</li></ul>";
} else {
    
contenedor[0].innerHTML += "<li>Una hija " boton + [B][COLOR="red"]exe[/COLOR][/B] + "</li>" ;
}
}


</script>

</head>
<body>
<div id="tree">
<a href="#" onclick="nueva_categoria(this);return false;">AÑADIR SUBCATEGORIA</a>
</div>
</body>
</html> 
  #11 (permalink)  
Antiguo 06/06/2011, 17:37
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Campos en arbol dinamicamente

hola

Estoy tratando de mejorar este codigo. Lo que necesito es poder desarrollarle un id correlativo, para poder asignarle un nombre identificativo a cada campo de valor. Así, podré llegar a extraer estos datos a una tabla, con el objetivo de poder asignarle informacion. El problema con el que me encuentro es que cada vez que intento desarrollar el correlativo proximo, puede haber reiteraciones de id, por lo cual no podria luego llegar a extraer nuevamente a una celda porque repetiria datos.....

Solicito ayuda porque lo necesito para elaborar ecuaciones. Si alguien sabe de algun programa que lo haga, bienvenido sea, porque es para un trabajo nuevo que voy a tener, por lo cual necesisto tenerlo luego.... agradeceria la ayuda...

aqui el codigo:

Código PHP:
<html>
<
head>



<
script type="text/javascript">



var 
boton '<a href="#" onclick="nueva_categoria(this);return false;">AÑADIR SUBCATEGORIA</a>';

var 
count 1

var 
exe '<TABLE><TD><INPUT style="background:yellow" type="text" name="nombre" id="campo' count 

'"value="8000">  </TD></TABLE>' ;

document.write("The number is " count);





function 
nueva_categoria(aqui){

for (
count=1;count<=10;count+1)
{

var 
contenedor aqui.parentNode.getElementsByTagName("ul");
if(
contenedor.length == 0){
    
aqui.parentNode.innerHTML += "<ul><li>Una hija " boton exe "</li></ul>";
} else {
    
contenedor[0].innerHTML += "<li>Una hija " boton exe "</li>";
}
}


}
</script>






</head>
<body>
<div id="tree">
<a href="#" onclick="nueva_categoria(this);return false;" >AÑADIR SUBCATEGORIA</a>



<TABLE id=tabla3>
<td>nombre.value</td>
</TABLE>






<SCRIPT LANGUAGE="VBSCRIPT"> 
<!-- 
countB=1
sub repetirtabla3

''for i=1 to 1 step 1
     Dim objRow, objCell
    Set objRow = tabla3.insertRow()
'''''''''''''''objRow.insertCell().innerText = document.getElementById("campo1").value
objRow.insertCell().innerText = document.getElementById("campo"& countB).value
    Set objCell = Nothing
    Set objRow = Nothing
countB=countB+1
''NEXT

End sub 
--> 
'''''''''''''var exe = '<INPUT type="text" name="nombre" id="campo" value="8000">' ;
''''''''''''var exe = '<INPUT type="text" name="nombre" id="campo' + i + '"value="8000">' ;
'''''''''''var exe = '<INPUT type="text" name="nombre" id="campo' + countLL + 1 + '"value="8000">' ;

</SCRIPT> 



<INPUT onclick=repetirtabla3() type=button value='DETALLAR8' style="background:orange" 

name=extraetextoatabla>
</div>
</body>
</html> 

Etiquetas: campos, dinamicamente, arboles
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 17:28.