1 votos

JSON devuelto por php y función http.onreadystatechange de XMLHttpRequest

En php al cargar la página , construyo un JSON pequeño, que mando al JavaScript.Eso es lo que en un principio contiene la variable json del JavaScript.

Después hago un clic en pantalla , llamando a "inicio_pru.php" y éste me construye un json nuevo , más grande y se lo devuelve al JavaScript.

En JavaScript, la parte que recibe el evento click (se pincha en un nodo del árbol en pantalla, lo cual desencadena una llamada a inicio_pru.php para que construya un JSON más grande):

       onCreateLabel: function(label, node){
                label.id = node.id;            
                label.innerHTML = node.name;
                label.onclick = function(){

                  var http = new XMLHttpRequest();
                  var url = "inicio_pru.php";
                  var params = "callFunction=arbol_completo";
                  http.open("POST", url, true);

                 //Send the proper header information along with the request
                 http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                 http.send(params);
                 http.onreadystatechange = function() {//Call a function when the state changes.
                    if(http.readyState == 4 && http.status == 200) {

                      json=http.responseText;

                        st.loadJSON(json);
                        compute node positions and layout
                        st.compute();
                        //optional: make a translation of the tree
                        st.geom.translate(new $jit.Complex(-200, 0), "current");
                        //emulate a click on the root node.
                        st.onClick(node.id);
                        alert (json);

                    }
                }
                alert(json);

         };

En php (inicio_pru.php):

        <?php
        if($callFunction == "arbol_completo") {
                $root=recorrerArbol($children_root,$raiz); 
                $arbol1=json_encode($root);
                $arbol2=str_replace("type","\$type",$arbol1);
                $arbol3=str_replace("color","\$color",$arbol2);
                $arbol=str_replace("'","\'",$arbol3);

                echo '$arbol';
        }
        else 
        {

        $root=recorrerArbol1($children_root,$raiz);

        $arbol1=json_encode($root);
        $arbol2=str_replace("type","\$type",$arbol1);
        $arbol3=str_replace("color","\$color",$arbol2);
        $arbol=str_replace("'","\'",$arbol3);

        return '$arbol';

        }

        ?>

Pero al hacer click en un nodo del árbol, parece que la función onclick no hace nada, de hecho ni siquiera saca los dos alert que le he puesto Muchísimas gracias de antemano

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: