Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcos Barbosa

[Resolvido] tinyMCE+php+ajax

Recommended Posts

Pessoal, as chamadas das páginas através no index.php eu uso um função em ajax para que elas abram numa div chamada conteudo. Tô precisando colocar no textarea um editor de texto e escolhi o TinyMCE, tô vendo que as chamadas para as funcções do TinyMCE são feitas através do <script></script> comecei a perceber que as instruções dentro do js ñ são lidas pelo ajax, como posso fazer isso funcionar, alguém tem um exemplo ? Segue finhas funções:

Já pesquisei no google, nos forum´s e achei algumas coisas, mas ñ consegui adaptar aki.

 

ajax.js

// verifica se o navegador suporta o ajax.
function GetXMLHttp() {

 var xmlhttp = null;
 try {
 xmlhttp = new XMLHttpRequest();
 }
 catch(ee) {
 try {
 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 }
 catch(e) {
 try {
 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 }
 catch(e) {
 xmlhttp = false;
 }
 }
 }
 return xmlhttp;
}

var xmlRequest = GetXMLHttp();

instrucao.js

// FUNÇÃO PARA PEGAR O LINK E ABRIR A PAGINA NA DIV CONTEUDO.
function abrirPag(valor){
 var url = valor;
 
 xmlRequest.open("GET",url,true);
 xmlRequest.onreadystatechange = mudancaEstado;
 xmlRequest.send(null);
 
 if (xmlRequest.readyState == 1) {
 document.getElementById("conteudo").innerHTML = "Abrindo pagina. Aguarde.";
 }
 
 return url;
}


function mudancaEstado(){
 if (xmlRequest.readyState == 4){
 document.getElementById("conteudo").innerHTML = xmlRequest.responseText;
 }
 
}


// função permite usar o post e mostrar os dados dentro da div conteudo
function f_ajx(form)
{
// var url = valor;
// var frm = document.getElementById(form)
 var inputs = id(form).getElementsByTagName('input'); // pega todos os input´s do formulário na variavel
 var selects = id(form).getElementsByTagName('select'); // pega todos os select´s do formulário na variavel
 var textareas = id(form).getElementsByTagName('textarea'); // pega todos os textarea´s do formulário na variavel
 

 var inp_d = "";
 var sel_d = "";
 var tex_d = "";
 
 // armazena todos os nomes e inputs e armazena na variavel
 for (var i = 0; i < inputs.length; i++)
 {
 inp_d += inputs[i].name+"="+inputs[i].value+"&";
 }
 
 // armazena todos os nomes e selct´s e armazena na variavel
 for (var i = 0; i < selects.length; i++)
 {
 sel_d += selects[i].name+"="+selects[i].value+"&";
 }
 
 // armazena todos os nomes e textarea´s e armazena na variavel
 for (var i = 0; i < textareas.length; i++)
 {
 tex_d += textareas[i].name+"="+textareas[i].value+"&";
 }
 
 // acumula todos os input´s, select´s e textareas na variavel para retornar ao formulário destino
 var dados =inp_d+sel_d+tex_d;
// alert(dados);

 xmlRequest.open("POST",id(form).action,true);
 xmlRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded"
);
 
 xmlRequest.send(dados);
 xmlRequest.onreadystatechange = function(){
 id("conteudo").innerHTML = xmlRequest.responseText;
 }
}
 
function id(el)
{ return document.getElementById(el); }

Chamada do index.php

<li><a href="#" onclick="abrirPag('lista_categoria.php');">Categoria</a></li>

 

arquivo onde tem o textarea

<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title>Untitled Document</title>
 

 
 <script type="text/javascript" src="tinymce/jscript/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
 // General options
 mode : "textareas",
 theme : "advanced",
 plugins : "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,
inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,
noneditable,visualchars,nonbreaking,xhtmlxtras,template,imagemanager,filemanager",

 // Theme options
 theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,
justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
 theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,
|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,
backcolor",
 theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,
|,print,|,ltr,rtl,|,fullscreen",
 theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,
del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage"
,
 theme_advanced_toolbar_location : "top",
 theme_advanced_toolbar_align : "left",
 theme_advanced_statusbar_location : "bottom",
 theme_advanced_resizing : true,

 // Example content CSS (should be your site CSS)
 content_css : "css/example.css",

 // Drop lists for link/image/media/template dialogs
 template_external_list_url : "js/template_list.js",
 external_link_list_url : "js/link_list.js",
 external_image_list_url : "js/image_list.js",
 media_external_list_url : "js/media_list.js",

 // Replace values for the template plugin
 template_replace_values : {
 username : "Some User",
 staffid : "991234"
 }
});
</script>
 
 </head>

<td align="center" colspan="3">
 <textarea name="txt_resultado" id="botao" cols="70" rows="20"><?php echo $txt_resultado; ?></textarea>
 </label> </td>
 <tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só dar uma pesquisada no forum amigo, vou ser legal =) e já adiantar para voce:

http://forum.imasters.com.br/index.php?/topic/165277-ajax-executando-scripts-dentro-de-uma-pagina-carregada-com-ajax/

 

Boa sorte amigo.

 

Atenciosamente Silverfox

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só dar uma pesquisada no forum amigo, vou ser legal =) e já adiantar para voce:

http://forum.imasters.com.br/index.php?/topic/165277-ajax-executando-scripts-dentro-de-uma-pagina-carregada-com-ajax/

 

Boa sorte amigo.

 

Atenciosamente Silverfox

Vlw pela dica, ainda ontem eu achei aki mesmo no forum essa dica. Até já implementei, mas me tire uma dúvida se possível, como eu faço a chamada dessa função, no caso eu coloquei assim:

no head continua assim

<head> <script type="text/javascript" src="tinymce/jscript/tiny_mce/tiny_mce.js"></script> <script type="text/javascript"> tinyMCE.init({  .... segue o script </script>

O textarea, continua assim ?

<textarea name="txt_resultado" id="botao" cols="70" rows="20"><?php echo $txt_resultado; ?></textarea>

 

Tô perguntando pq quando encontrei essa função ontem comecei a tentar fazer e ainda ñ consegui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está parte tem que estar no HEAD da página que não é chamada pelo ajax, ou seja esse deve ficar no index.php:

<script type="text/javascript" src="tinymce/jscript/tiny_mce/tiny_mce.js"></script>

 

Já está parte tem que estar dentro da página chamada pelo ajax(arquivo onde tem o textarea), o textarea continuar normal amigo:

<script type="text/javascript">
 tinyMCE.init({
  .... segue o script
 </script>

Espero ter ajudado amigo.

 

Atenciosamente Silverfox

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja só, pesquisando vi q realmente em programas chamados pelo ajax as funções em javascrit ñ são lidas, vi vários exemplos de funções para resolver esse problema e nada funcionava, inclusive essa q você me mostrou, mas o link q você me mostrou direcionavam para outros link´s que eu ñ tiva vista ainda q mostra uma adaptação feita pelo MICOX na função desenvolvida por SkyWalker e resolveu.

Ela pode ser vista aqui

 

 

Tópico RESOLVIDO

Agradeço muito sua indicação e paciência.

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.