Foros del Web » Programando para Internet » PHP »

PHPOO Y Xajax

Estas en el tema de PHPOO Y Xajax en el foro de PHP en Foros del Web. Buenas en el dia de hoy escribo por primera vez porque necesito una ayuda bastante particular. He desarrollado un Framework personal, todavia esta en prueba ...
  #1 (permalink)  
Antiguo 10/09/2010, 11:45
Avatar de javiertroya  
Fecha de Ingreso: mayo-2009
Ubicación: Valencia
Mensajes: 15
Antigüedad: 15 años, 6 meses
Puntos: 2
Busqueda PHPOO Y Xajax

Buenas en el dia de hoy escribo por primera vez porque necesito una ayuda bastante particular.

He desarrollado un Framework personal, todavia esta en prueba así que tiene unos cuantos defectos.

La idea principal del framework es la integración de varias de las herramientas que se usan a diario para la programación como PHP, MySQL, Xajax, jQuery y CKEditor.

Una de las principales formas de trabajo del frame consiste en no escribir en otro lenguaje que no sea PHP, es decir, no escribiremos HTML, MYSQL, CSS o Javascript (Solo con jQuery si se usa), esto lo hago con el fin de evitar los errores que nos da muchas veces el cierre de las etiquetas, que algunos olvidamos colocar o simplemente para tener un codigo muchisimo mas ordenado

Entonces tengo varias clases como por ejemplo las clases sql y html que son obviamente para escribir las sentencias necesarias

Ahora mi problema:

Las funciones xajax normalemente deben llevar mucho html y sql embedido asi que para evitar errores pretendo crear las instancias de estos objetos dentro de mi funcion xajax

Ahora voy con el codigo:
Código PHP:
class html
{
    function 
div($id NULL,$contenido,$class NULL,$align NULL,$style NULL)
    {
        
$div '<div ';
        if(
$id$div.= 'id = "'.$id.'" ';
        if(
$class$div.= 'class = "'.$class.'" ';
        if(
$align$div.= 'align = "'.$align.'" ';
        if(
$style$div.= 'style = "'.$style.'" ';
        
$div.= '>';
        
$div.= $contenido;
        
$div.= '</div>';
    return 
$div;
    }

Con esta funcion se pretende crear una capa o div con parte de los atributos que este lleva.

Código PHP:
class sql
{
    function 
sql()
    {
        return 
$this->connect(sql_host,sql_user,sql_clave,sql_db);
    }

    function 
connect($host,$user,$pass,$db)
    {
        
$error "";
        if(
mysql_connect($host,$user,$pass) == false)
        {
            
$error "No se puede conectar al servidor";
        }
        elseif(
mysql_select_db($db) == false)
        {
            
$error "No se puede seleccionar la base de datos";
        }
        
        if(
$error != "")
        {
            
$mensaje $error;
        }
        else
        {
            
$mensaje true;
        }

    return 
$mensaje;

    function 
fetch_assoc($query)
    {
    
$fetch mysql_query($query);
        while(
$arr mysql_fetch_assoc($fetch))
        {
            
$dat[] = $arr;
        }
    return 
$dat;
    }

La clase SQL cuyas funciones escritas son la funcion de conexion y la funcion para crear matrices o arreglos que puedan ser manipulables como los conocidos $row["dato"]

Bien, ahora escribo mi funcion xajax

Código PHP:
<? require_once(dirname."xajax/xajax_core/xajax.inc.php");

$xajax = new xajax();
$xajax->configure("javascript URI"url."xajax/");
$xajax->configure("setCharEncoding",charset);

function 
modificar_div($tipo)
{
        
$html = new html();
        
$sql = new sql();

        
$query "select $tipo from nosotros";
        foreach(
$sql->fetch_assoc($query) as $row)
        {
            
$value $row[$tipo];
    }
    
$contenido =$html->div(NULL,$value);

    
$r = new xajaxResponse();

    
$r->assign($tipo,"innerHTML",$contenido);
return 
$r;
}

$xajax->register(XAJAX_FUNCTION"modificar_div");
$xajax->processRequest();
?>
Notaran que existen varias constantes dentro de la hoja xajax. Estas son definidas en un archivo define.class.php que toma las variable $config de un archivo config.php que he creado.

Mi problema es que cuando no hago instancias de los objetos es decir que en vez de escribir $contenido = $html->div(...) escribo $contenido = '<div id = "eldiv">'.$value.'</div>'; la funcion trabaja correctamente al instanciar los objetos pierde completa funcionalidad.

Lo mismo sucede al intentar conectar a la base de datos, no importa si creo la Instancia de SQL o no no se conecta con la base de datos

Les mostrare tambien el arbol de las carpetas para que puedan identificar mejor el problema si eso ayuda



Los archivos seleccionados son los que les he mencionado antes

Por favor, necesito ayuda lo mas pronto posible!
  #2 (permalink)  
Antiguo 10/09/2010, 13:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: PHPOO Y Xajax

No indicas que error es el que te muestra...
  #3 (permalink)  
Antiguo 10/09/2010, 14:15
Avatar de javiertroya  
Fecha de Ingreso: mayo-2009
Ubicación: Valencia
Mensajes: 15
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: PHPOO Y Xajax

Hola. La cuestion es que no me muestra error simplemente se queda el cursor en espera de una respuesta.

He dejado de utilizar las instancias de HTML y FORM para poder resolver momentaneamente pero la SQL no puedo dejar de usarla y verificando nuevamente al aprecer la funcion que presenta problemas es la funcion fetch_assoc del objeto SQL

Pero es unicamente en la funcion Xajax que presenta problemas ya que ella esta siendo utilizada muchas veces en el sitio web que estoy creando.

De verdad me gustaria mucho poder decir que existe algun error en concreto mi problema es que no me da ningun error!
  #4 (permalink)  
Antiguo 10/09/2010, 15:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: PHPOO Y Xajax

Viendo tu clase nunca compruebas errores por lo que si tu query tiene algún error nunca te va dar el problema, siempre es buena idea depurar las consultas, por ejemplo:
Código PHP:
Ver original
  1. public function fetch_assoc($query) {
  2.          $result = mysql_query($query);
  3.          if (!$result) {
  4.                 throw new Exception("Invalid query: " . mysql_error());
  5.          }
  6.  
  7.          while($arr = mysql_fetch_assoc($fetch))
  8.         {
  9.             $dat[] = $arr;
  10.         }
  11.     return $dat;
  12. }

Saludos.

Etiquetas: ajax, phpoo, 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 13:05.