Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/12/2012, 18:12
Avatar de AdrianSeg
AdrianSeg
 
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 9 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. }