Hola a todos. Quiero hacer un sistema de comentarios algo asi como cuando se escribe una respuesta/crea un tema en los foros, que arriba de el lugar para escribir aparecen los emoticonos, entre otras cosas.
Se como hacer la parte de php con str_replace();, como "ordenar" los emoticonos/bbcodes ahí arriba (insertaría una imágen al lado de la otra) pero... no se como se hace para cuando le das click a una, en el <textarea> aparece lo que clickeaste.
Por ejemplo clickeo la b que sabemos que es negrita, y acá abajo aparece [*b][/*b]. ¿Cómo se hace eso?. ¡Muchas gracias!
Con el evento onclick()
function insertar_emoticono(el_texto) {
tu_textarea.value += tu_texto;
}
Luego desde el botón llamas a onclick() pasándole los argumentos:
<input type=button onclick="insertar_emoticono('xD')" value="xD" />
Después tienes que convertir el emoticono en la imagen correspondiente:
tu_texto = tu_textarea.value.split("xD").join("<img src=/images/icono_xD.gif />");
Adapta eso a tus necesidades, doy por hecho que sabes algo de JS, ya que los ejemplos son una especie de pseudocódigo.
Si, lo básico se nada más. Y ya comprendí el código, lo adaptaré a gusto seguramente con php.
Muchas gracias amigo.
Por cierto, me surge otra duda. Si yo acomodo el código este, al clickear en por ejemplo xD se escribiría 'xD' en el textarea pero.. ¿qué pasa si yo tengo sombreada una palabra y clickeo 'xD'?, ¿la sustituye?, porque ahí mi idea sería que [xD]Deje lo sombreado[/xD] es decir, que lo ponga en un principio y en un fin. De hecho en casi todos los lados lo hace... ¿eso es automático del navegador o también se programa?.
amm, yo no se mucho de esto, pero si la etiqueta fuera con sombreado seria
<sombreado variable>
no se si me explico, pero teóricamente con html si le aplicas un estilo a la variable, no importa lo que este escrito, sino que estará sombreado... tu solo usa los la etiqueta "style" ... ahora si estoy en un error solo corriganme...saludoss
Cita de: Feedeex en 24 Diciembre 2010, 23:15 PM
Por cierto, me surge otra duda. Si yo acomodo el código este, al clickear en por ejemplo xD se escribiría 'xD' en el textarea pero.. ¿qué pasa si yo tengo sombreada una palabra y clickeo 'xD'?, ¿la sustituye?, porque ahí mi idea sería que [xD]Deje lo sombreado[/xD] es decir, que lo ponga en un principio y en un fin. De hecho en casi todos los lados lo hace... ¿eso es automático del navegador o también se programa?.
No, la función que te he dejado no hace eso, simplemente inserta el emoticono en el textarea.
Para eso tendrías que mirarte el manejo de cadenas en javascript (http://www.google.es/#hl=es&expIds=17259,18167,24999&xhr=t&q=manejo+de+cadenas+javascript). Una opción seria sustituir el texto seleccionado por:
[ b] + [texto seleccionado] + [ /b] añadiéndole las etiquetas bbcode correspondientes.
Gracias :D