Executar funções JS em página carregada com ajax

rdgomes

Power Member
Boas

Estou a fazer um programa em php + javascript.

O que eu quero é colocar numa div, na página inicial, conteúdo que ficará numa estrutura em árvore.

Do género:

Código:
    <script type="text/javascript">
        <!--

        e = new dTree('e');

        e.add(0,-1,'');
        e.add(1,0,'Menu1','example01.html');
        e.add(2,1,'submenu1','sub01.html');

        document.write(e);

        //-->

    </script>
Mas esses dados devem ser carregados através de uma base de dados, usando php e mysql, ficando algo assim:


Código:
    <script type="text/javascript">
        <!--

        e = new dTree('e');

        e.add(0,-1,'');

            <?php
                $sql=...
                $result=mysql_query(...)
                while ($row = pg_fetch_row($result))
               {
                      echo "e.add($row[0], row[1], $row[2]', $row[3]);";
                } 
             ?>

        document.write(e);

        //-->

    </script>
Até aqui tudo bem, mas como são muitos dados eu queria que os dados fossem carregados depois da pagina, usando ajax.
O problema é que as funções javascript usadas para a representação em árvore não são executadas depois do ajax.
Além me pode ajudar?

Origado
 
Última edição:
Como? Tentei usar XML para recolher os dados da BD e depois usava as funções JS, mas não funcionou. Depois do ajax o código javascript relativo ao script dtree não funciona. Aparecem os dados isoladamente na página mas o javascript não funciona nem ficavam com a formatação css, para além de que o restante conteúdo da página não aparecia.

De qualquer modo obrigado pela resposta.
 
Última edição:
podes criar uma tag no codigo html
Código:
<div id="exemplo"></div>
Depois de receberes os dados via ajax envias os dados para dentro da div criada
Código:
document.getElementById("exemplo").innerHTML = xmlhttp.responseText;
 
Funcionou assim:

Código:
d = new dTree('d');

obj=ajax.responseXML;

var dataArray   = obj.getElementsByTagName("elemento");

 if(dataArray.length > 0) {
         //percorre o arquivo XML paara extrair os dados
         for(var i = 0 ; i < dataArray.length ; i++) {
            var item = dataArray[i];
            //contéudo dos campos no arquivo XML
            var id    =  item.getElementsByTagName("id")[0].firstChild.nodeValue;
            var nome =  item.getElementsByTagName("nome")[0].firstChild.nodeValue;
            var id_ant    =  item.getElementsByTagName("ant")[0].firstChild.nodeValue;
                        
                        d.add(id,0,nome);
}

document.getElementById("registo_ajax").innerHTML = d
Que burrice a minha!!!!
Obrigado whee_man, salvaste-me o emprego!!!
 
Última edição:
Back
Topo