Jump to content


Photo

Ajax + Smarty


  • Faça o login para participar
1 reply to this topic

#1 kurt_rp

kurt_rp

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Masculino
  • Localidade:Rio Grande do Sul
  • Interesses:Programação web e designer.

Posted 11/05/2010, 08:35

Pessoal please!

Estou tentando problemas para executar javascript dentro do ajax.
Segue abaixo meu codigo:
<script type="text/javascript">
        function extrairScript(texto){
                var ini = 0;
                // loop enquanto achar um script
                while (ini!=-1){
                        // procura uma tag de script
                        ini = texto.indexOf('<script', ini);
                        // se encontrar
                        if (ini >=0){
                                // define o inicio para depois do fechamento dessa tag
                                ini = texto.indexOf('>', ini) + 1;
                                // procura o final do script
                                var fim = texto.indexOf('<scr'+'ipt>', ini);
                                // extrai apenas o script
                                codigo = texto.substring(ini,fim);
                                var novo = document.createElement('script');
                                novo.type     = 'text/javascript';
                                novo.language = 'javascript';
                                novo.text = codigo;
                                document.body.appendChild(novo);
                        }        
                }
        }

        //Exibir ou ocultar divs
        function exibirOcultar(valor) {
            {/literal}
            var unimed = {$codigoUnimed};
            {literal}
            var indicador = valor;

            if( document.getElementById(valor).style.display == "none" ){
                document.getElementById(valor).style.display = "block";

            loadXMLDoc15(unimed,indicador);

            function loadXMLDoc15(unimed,indicador) {
            url = "get-dados-indicador.php?unimed="+unimed+"&indicador="+indicador;
            req = null;
            texto = null;

             // Procura por um objeto nativo (Mozilla/Safari)
             if (window.XMLHttpRequest) {
                     req = new XMLHttpRequest();
                     req.onreadystatechange = processReqChange15;
                     req.open("GET", url, true);
                     req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                     req.send(null);
             // Procura por uma versao ActiveX (IE)
             } else if (window.ActiveXObject){
                     req = new ActiveXObject("Microsoft.XMLHTTP");
                     if (req) {
                             req.onreadystatechange = processReqChange15;
                             req.open("GET", url, true);
                             req.send();
                     }
             }

                function processReqChange15() {
                     // apenas quando o estado for "completado"
                     if(req.readyState == 4) {
                    // Quando estiver tudo pronto.
                                if(req.status == 200) {
                                        var resultado = req.responseText; // Coloca o resultado (da busca) retornado pelo Ajax
                                        /*resultado = resultado.replace(/\+/g," "); // Resolve o problema dos acentos
                                        resultado = unescape(resultado); // Resolve o problema dos acentos
                                        tag = 'script';
                                        initSub = resultado.indexOf('<'+tag+'>');
                                        initTagLen = tag.length+2;
                                        finiSub = resultado.indexOf('</'+tag+'>');
                                        myScript = resultado.substring(initSub+initTagLen,finiSub);
                                        eval(myScript);*/

                                        //document.getElementById(valor).innerHTML = eval(req.responseText);
                                        document.getElementById(valor).innerHTML = resultado;
                                } else {
                                        document.getElementById(valor).innerHTML = "Erro: ";
                               }
                        }
                }
            }


            } else {
                document.getElementById(valor).style.display = "none";
            }
        }

</script>


Tipo qdo eu clico no link eu ate consigo fazer executar o ajax e carregar a outra pagina dentro da div escolhida, problema é que após carregar essa outra pagina o javascript que tem dentro dele não estão executando, detalhe essa pagina é em .tpl (smarty).



Tentei fazer de diversas formas, ate usando o "eval", mas não funcionou. :(

Alguém sabe me dizer o que esta acontecendo?

---------------------------------------------------------------------
Pessoal, alguem sabe como ajudar?
Estou mesmo precisando.

Edição feita por: kurt_rp, 11/05/2010, 08:36.

|| PLUG CIDADE || - O portal turistico do vale do Rio Pardo
http://www.plugcidade.com.br

|| PLUG BALADA || - O portal de festas do vale do Rio Pardo
http://www.plugbalada.com.br

#2 kurt_rp

kurt_rp

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Masculino
  • Localidade:Rio Grande do Sul
  • Interesses:Programação web e designer.

Posted 13/05/2010, 08:44

Galera, como to vendo que o pessoal está entrando aqui e não está conseguindo ajudar a solucionar o problema, eu vou passar o link de outro topico que mostra como fazer isso.
Espero que isso ajude aqueles que tiverem o mesmo problema.

Segue abaixo o link:
http://forum.imaster...6

Se ainda assim alguem conseguir responder a minha ultima pergunta, por favor me avise, pois estou realmente precisando.

Abs!
|| PLUG CIDADE || - O portal turistico do vale do Rio Pardo
http://www.plugcidade.com.br

|| PLUG BALADA || - O portal de festas do vale do Rio Pardo
http://www.plugbalada.com.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq