Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/07/2012, 03:25
dannelblogger
 
Fecha de Ingreso: junio-2012
Ubicación: sabadell
Mensajes: 46
Antigüedad: 12 años, 5 meses
Puntos: 6
Cargar input y textarea (dinámicos) según demanda en formulario vacio

Buenos dias comunidad!!

La duda hace referencia a javascript, aunque muestre unas líneas en php..

Para que negarlo chicos.. javascript me da miedo!! jaja

Vereis, en una página dinámica cargo una serie de comentarios en los cuales aparece en cada uno de ellos la opción 'responder'..

La carga de los comentarios esta encapsulada dentro de las etiquetas <form></form>, donde no existe ningún campo input..

La idea es la siguiente, al hacer click en un 'responder' de un comentario, generaría dentro de una etiqueta div en concreto un input con el valor del comentario y un textarea con el contenido del texto..

desde php genero por cada comentario:
Código PHP:
echo '<a href="javascript:ResponderComentario(<?php echo $comentario_id;?>);">Responder</a>';
//Es una llamada a una función en ajax, donde paso el id del comentario..
//Lo se.. es una autentica tontería pudiéndolo hacer desde javascript directamente con innerHTML..
Donde lo que hago es recuperar dentro de las etiquetas form:

<form name='elformulario'action='#' method='post'>
Código HTML:
Ver original
  1. <input type="hidden" name="comentario_id" value="el valor numerico obtenido del comentario_id">
  2. <textarea name='respuesta' onkeypress='if(event.keyCode == 13) document.elformulario.submit()'/></textarea>
  3. <!-- Este último código del textarea, me sirve para ahorrarme el boton del submit, ¡¡más abajo os comento!! -->
</form>

Como nota:
- El valor del comentario_id, es un valor integer, único por cada comentario, almacenado en la bd
- Cada vez que genero un comentario, creo un div vacio con su mismo identificador, a modo de ser un posible contenedor de datos => <div id="valor_del_comentario_id"></div>, donde mostraría los campos input

El problema:
Que de teoria mucha, pero de javascript a la práctica se me caen los 'pedetes'..
Necesitaría una mano en 2 temas..

1.- En la validación del formulario al presionar 'enter', como es obvio, sólo me procesa el valor del textarea y no del valor del input 'comentario_id'..
¿Cómo sería posible procesar los dos campos a la vez con sólo tocar 'enter'?

2.- La segunda duda es a modo de estética..
Por ejemplo imaginemos que el usuario clickea un 'responder' de un comentario..
Aperece el textarea y se genera un input hidden comentario_id, con el valor del identificador del comentario.. Pero este se lo piensa 2 veces y clickea en otro 'responder' de un segundo comentario..
¿Como podría hacer en este caso, para sólo mostrar un textarea en la página?
Me explico un poco mejor..
Que el textarea y el input comentario_id, que estan en la etiqueta <div id="4"></div>, por ejemplo, desaparecieran al hacer click en un comentario nuevo dentro de la etiqueta <div id="7"></div>

En este último caso se me ocurre que podría almacenar el id de los clicks(comentario_id) en un array e ir comprobando con cada click 'nuevo' si existe un valor 'anterior' a este y limpiar los datos desde ahí..

No se..

La idea se entiende.. Esta claro o me he ido por las ramas? jaja

Gracias muchachos de antemano..
__________________
Ante una duda.. ha de mostrarse valor/esfuerzo..