Como pegar carita en un TEXTAREA con javascript y PHP !!

Iniciado por Diabliyo, 30 Junio 2008, 23:29 PM

0 Miembros y 1 Visitante están viendo este tema.

Diabliyo

Hola:

Pues mi problema es que no logro pegar una carita en un textarea apartir de una imagen que le dan click, pero tomando en cuenta que la carita (imagen) esta en una nueva ventana (pop-up). Aparte, las caritas las genero mediante una funcion en PHP, ya que las caritas estan guardadas en la Base de Datos.

Inicialmente tenia un conjunto de 10 caritas muy simples, las cuales no tenia problema para insertarlas al TEXTAREA, ya que simplemente llamaba la funcion listar_caritas() (en php), me listaba las caritas dentro del mismo form sin usar pop-up y a cada carita le asignaba algo asi

echo "<a href=\"javascript:void(0);\" onclick=\"reemplazar_carita( ':ass_suck:', document.forms.formulario_comentarios.comentario_mensaje); return false;\">";
echo "<img src=\"direccion/carita.gif\">";
echo "</a>";


Y esto es lo que tengo en mi script.js

function reemplazar_carita(text, textarea)
{
// Attempt to create a text range (IE).
if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange)
{
var caretPos = textarea.caretPos;

caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
caretPos.select();
}
// Mozilla text range replace.
else if (typeof(textarea.selectionStart) != "undefined")
{
var begin = textarea.value.substr(0, textarea.selectionStart);
var end = textarea.value.substr(textarea.selectionEnd);
var scrollPos = textarea.scrollTop;

textarea.value = begin + text + end;

if (textarea.setSelectionRange)
{
textarea.focus();
textarea.setSelectionRange(begin.length + text.length, begin.length + text.length);
}
textarea.scrollTop = scrollPos;
}
// Just put it on the end.
else
{
textarea.value += text;
textarea.focus(textarea.value.length - 1);
}
}


Pero debido a que encontre un conjunto de caritas mas (15), quiero que estas caritas NO esten disponibles directamente en el mismo FORM, sino que cuando el usuaro de click en [>Ver Caritas Extras<], le salga un POPUP donde se listen las caritas extras y apartir de ahi al dar click se inserten en el TEXTAREA !!...

Actualmente de esta manera abro el pop-up y listo las caritas:


<?php
echo "<div id=\"espacio_caritas\">";
listar_caritas(); //funcion que lista las caritas normalmente y que se insertan con un solo clik
echo "[><a href=\"javascript:void(0);\" onclick=\"ver_caritas();\">Ver Caritas-Extra</a><]";
echo 
"</div>";
echo 
"<form name=\"formulario_comentarios\">";
echo 
"<textarea name=\"comentario_mensaje\"></textarea>";
echo 
"</form>";
?>


function ver_caritas()
          {
          var ventanita;
          ventanita= window.open( 'loader.php?mod=caritas_extra', '', 'width:100px,height:100px' );
          }


<?php
//LOADER.PHP

switch( $_GET["mod"] )
          {
          case 
'caritas_extra':
                    
listar_caritas_extra(); //esta funcion lista las caritas extra
                    
break;
          case 
'caritas_blabla':
                    break;
          default:
                    echo 
"Hola jejejej xD";
                    break;
          }




//esto es solo una aproximacion de como se quedan listadas las caritas en el HTML
function lista_cartas_extra()
{
echo "<a href=\"javascript:void(0);\" onclick=\"reemplazar_carita( ':ass_suck:', document.forms.formulario_comentarios.comentario_mensaje); return false;\"><img src=\""CARITAS_URL"/012.gif\" border=\"0\" alt=\":ass_suck:\" title=\":ass_suck:\"></a> ";
}
?>

Azielito

#1
deberia ser con "opener"

no estoy muy seguro pero quedaria algo asi

Código (html) [Seleccionar]

<a href="javascript:void(0); onClick:"reemplazar_carita(':ass_suck',window.opener.document.forms[0].formulario_comentarios.comentario_mensaje);return false;">...


Precisamente hoy voy a necesitar de esta funcion ;D