Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema recuersividad XAJAX

Estas en el tema de Problema recuersividad XAJAX en el foro de Frameworks JS en Foros del Web. Buenas, estoy intentando mostrar por pantalla mi menu de dos niveles, la función que uso es correcta si la uso fuera de xajax pero si ...
  #1 (permalink)  
Antiguo 09/12/2012, 18:12
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 10 meses
Puntos: 14
Problema recuersividad XAJAX

Buenas, estoy intentando mostrar por pantalla mi menu de dos niveles, la función que uso es correcta si la uso fuera de xajax pero si la intento convertir a este framework me tira el siguiente error.

Catchable fatal error</b>: Object of class xajaxResponse could not be converted to string in line 249


Esa línea es justo la que llama a la función así misma(aqui linea 53), os dejo la función.

Código Javascript:
Ver original
  1. //Métodos XAJAX
  2. require ('clases/xajaxAIO.inc.php');
  3. //instanciamos el objeto de la clase xajax
  4. $xajax = new xajax();
  5. //asociamos las funcióes creadas para xajax
  6.  
  7. $xajax->registerFunction("montarTabla");
  8.  
  9. function montarTabla($padre, $menu)
  10. {
  11.    
  12.  include ('conexionlite.php');
  13.  
  14.  
  15.             // Preparamos la sentencia y sacamos el array de datos PDO SQLite
  16.           $sth = $dbh->prepare("SELECT id, nombre, link, padre FROM menu");
  17.           $sth->execute();
  18.            
  19.           // Iniciamos los arrays
  20.           $menu = array(
  21.               'items' => array(),
  22.               'padres' => array()
  23.           );
  24.          
  25.           // Asignamos los datos a sus respectivos arrays
  26.          
  27.           while ($items = $sth->fetch())
  28.           {
  29.               // Insertamos cada valor con su id. $menu['items'][1]
  30.              
  31.               $menu['items'][$items['id']] = $items;
  32.              
  33.               // Asgiamos todos los hijos a sus padres correspondientes
  34.              
  35.               $menu['padres'][$items['padre']][] = $items['id'];
  36.           }
  37.          
  38.              $html = "";
  39.              if (isset($menu['padres'][$padre]))
  40.              {
  41.                 $html .= "
  42.                <ul>";
  43.                  foreach ($menu['padres'][$padre] as $itemId)
  44.                  {
  45.                     if(!isset($menu['padres'][$itemId]))
  46.                     {
  47.                        $html .= "<li>  <a href='".$menu['items'][$itemId]['link']."'>".$menu['items'][$itemId]['nombre']."</a></li> ";
  48.                     }
  49.                     if(isset($menu['padres'][$itemId]))
  50.                     {
  51.                        $html .= "
  52.                       <li>  <a href='".$menu['items'][$itemId]['link']."'>".$menu['items'][$itemId]['nombre']."</a> ";
  53.                        $html .= montarTabla($itemId, $menu);
  54.                        $html .= "</li> ";
  55.                     }
  56.                  }
  57.                  $html .= "</ul> ";
  58.              }
  59.  
  60. //Instanciamos el objeto para generar la respuesta con ajax
  61.  
  62.             $respuesta = new xajaxResponse();    
  63.                    
  64.                $respuesta->assign("tabla","innerHTML", $html);
  65.        
  66.  
  67.                return $respuesta;
  68. }
  #2 (permalink)  
Antiguo 09/12/2012, 19:37
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Problema recuersividad XAJAX

Es que esa función devuelve un objeto xajaxResponse, no un string.

Podrías crear otra función que devuelva un string (y allí hacer las llamadas recursivas), entonces, en tu función que registras en XAjax solo llamas a esa función.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 10/12/2012, 05:12
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 10 meses
Puntos: 14
Respuesta: Problema recuersividad XAJAX

Gracias David funciona perfecto, con tus consejos me estas ayudando en esto de inciarme en xajax muchas gracias :)

Etiquetas: ajax, html, php, xajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:01.