Buf, mucho avanza el hilo en poco tiempo.
Muchas cosas que responder.
Cita:
Iniciado por caricatos
Lo de borrar nodos con hijos, tampoco creo que haya problemas (me parece que no hay que controlar nada porque se borran sin más).
La función de
borrar() tiene tejemaneje porque todos los hijos no están en un DIV. Todos los DIVs que se añaden, si son hijos como si no, son DIVs clónicos, iguales. La única cosa que diferencia a un DIV padre de un DIV hijo es el marginLeft. Por eso hay que hallar la jerarquía con bucles
while. Es un poco lioso, y casi sería mejor hacerlo con listas; pero ya lo tenemos casi hecho así. Con listas sólo habría que mirar si el siguiente elemento LI contiene un UL:
Código HTML:
<ul>
<li id="1">caja+boton</li>
<li id="2">caja+boton</li>
<li id="hijos_de_2">
<ul>
<li>caja+boton</li>
<li>caja+boton</li>
<li>caja+boton</li>
<li>
<ul>
<li>caja+boton</li>
<li>caja+boton</li>
<li>caja+boton</li>
</ul>
</li>
<li>caja+boton</li>
</ul>
</li>
</ul>
Así, si borrasemos el LI de id="2", sólo tendríamos que borrar el LI con id="hijos_de_2" y todo se iría a freir espárragos automáticamente. Con DIVs tenemos que recorrerlos uno a uno comprobando que son hijos para almacenarlos en un array que más tarde será recorrido y elemento a elemento será eliminado.
Cita:
Iniciado por caricatos
Y me pareció ver algo de eventos en nodo de texto... (volveré a revisar el tema luego)... Los manejadores solo se asignan a nodos etiquetas... creo que estoy un pelín liado

Espero que no hayamos escrito eso... creo!
Cita:
Iniciado por scorm
Respecto a ésto que dices... no se exactamente a qué te refieres
Me refiero a lo siguiente: Nos ponemos en la caja de texto que viene en el documento. Le damos al botón varias veces para crear varias cajas. A esas cajas les escribimos valores:
1,2,3,4 y 5, por ejemplo. Luego nos posicionamos en cualquiera de ellas y le damos al botón para crear nuevas cajas hijas. Cualquier caja que creemos a partir de ese momento tendrá como valor
1.
Cita:
Iniciado por scorm
Pero he hecho un cambio y una prueba: Lo que se añaden nuevos, los llamo así:
Código PHP:
<input type="text" name="cap[]" onclick="foco=this" style="background-color: #eeeeee" onfocus="this.style.backgroundColor = '#cccccc'" onblur="this.style.backgroundColor = '#eeeeee'" value="" />
Vamos que ahora se llaman 'cap[]'.
Sí, es una buena manera de solucionarlo.
Cita:
Iniciado por scorm
Además lo he metido todo en un formulario y he puesto un botón 'Enviar' para probar que puedo mostrar los valores. He puesto en PHP:
Código PHP:
if($enviar){
foreach($cap as $c)
echo $c;
}
Y muestro todo lo que escribo en los inputs (emnos el primero que tendría que poner echo $cap3;).
Bien, perfecto. ¿Te manda también el que esta en DIV id="modulo"? ¿Puedes volver a obtener la jerarquía en PHP o eso no te interesa? Ahora mismo no se me ocurre cómo lo haría con esos name's.
Cita:
Iniciado por scorm
Y respecto a uffff queda todavía algo complicado, espero no desanimaros...jejeje
(...)
Todo eso que comentas del drag & drop y tal quizás podría ser tema de un nuevo hilo una vez hayamos finiquitado bien este tema. Creo que ya son muchos posts para esto, al final acabaremos con toda tu página web aqui! jeje.
Un saludo