Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Ayuda con clase XAJAX Y MySQL

Estas en el tema de Ayuda con clase XAJAX Y MySQL en el foro de PHP en Foros del Web. Hola, pues bien stoy probando la libreria XAJAX de php para implementar AJAX sin tocar javascript. Y weno hice una aplicación que se conectaba a ...
  #1 (permalink)  
Antiguo 22/05/2009, 10:45
 
Fecha de Ingreso: octubre-2008
Mensajes: 32
Antigüedad: 15 años, 6 meses
Puntos: 0
Ayuda con clase XAJAX Y MySQL

Hola, pues bien stoy probando la libreria XAJAX de php para implementar AJAX sin tocar javascript. Y weno hice una aplicación que se conectaba a la BD mediante una clase MySQl y nose que hago pero no funciona :(

Os dejo el código de la aplicación:
Código PHP:
require_once($_SERVER['DOCUMENT_ROOT'].'/lib/xajax/xajax_core/xajax.inc.php');
 require_once(
$_SERVER['DOCUMENT_ROOT'].'/lib/MySQL.php');

 
$obj=new xajax();
 
$obj->configure('characterEncoding','ISO-8859-1');
 
$obj->configure('decodeUTF8Input',true);
 
$obj->configure('javascript URI','/lib/xajax/'); 
 
 (
$db=DataBase::getInstance()) or die (mysql_error()); 
  
  function 
construye_tabla($id)
  {
  
$oficios=array('','EMPLEADO','VENDEDOR','DIRECTOR','ANALISTA','PRESIDENTE');
  
  
$query="SELECT emp_no,apellido,dir,fecha_alt,salario,comision,dept_no";
  
$query.="FROM emple";
  
$query.="WHERE oficio LIKE '".$oficios[$id]."'";
  
        if (
$db->setQuery($query))
            {
            
$empleados=$db->loadObjectList();
            
            
$new_tabla='<table>';
            
$new_tabla.='<tr>';
            
$new_tabla.='<td class="b2">emp_no</td>';
            
$new_tabla.='<td class="b2">apellido</td>';
            
$new_tabla.='<td class="b2">dir</td>';
            
$new_tabla.='<td class="b2">fecha_alt</td>';
            
$new_tabla.='<td class="b2">salario</td>';
            
$new_tabla.='<td class="b2">comision</td>';
            
$new_tabla.='<td class="b2">dept_no</td>';
            
$new_tabla.='</tr>';
            
            foreach (
$empleados as $emple)
            {
            
$new_tabla.='<tr>';
            
$new_tabla.='<td class="b1">'.$emple->emp_no.'</td>';
            
$new_tabla.='<td class="b1">'.$emple->apellido.'</td>'
            
$new_tabla.='<td class="b1">'.$emple->dir.'</td>'
            
$new_tabla.='<td class="b1">'.$emple->fecha_alt.'</td>'
            
$new_tabla.='<td class="b1">'.$emple->salario.'</td>'
            
$new_tabla.='<td class="b1">'.$emple->comision.'</td>'
            
$new_tabla.='<td class="b1">'.$emple->dept_no.'</td>'
            
$new_tabla.='</tr>';
            }
            
$new_tabla.='</table>';
            }
        else
            
$new_tabla=0;
    
    return 
$new_tabla;
  }
  
  function 
generar_tabla($in)
  {
   
$respu=new xajaxResponse();
    
        if (
$in)
            {
                if (
$out=construye_tabla($in))
                    {
                    
$respu->assign('divmsj','innerHTML','Consulta realizada con &eacute;xito');
                    
$respu->assign('divtabla','innerHTML',$out);
                    }
                else
                    
$respu->assign('divmsj','innerHTML','Error en la consulta');
            }
        else
            
$respu->assign('divmsj','innerHTML','No has seleccionado ning&uacute;n oficio');
    return 
$respu;
  }

$obj->register(XAJAX_FUNCTION,'generar_tabla');
$obj->processRequest(); 
Aki os dejo el código HTML
Código:
 <br/><br/>
 <div id="divmsj" class="msj">
Selecciona el oficio a buscar:
 </div>
 <br/>
 <div id="divform" class="b1">
 <form id="formulario" accept-charset="utf-8" action='<?php $PHP_SELF ?>'>
 <select name="oficios" onchange="xajax_generar_tabla(document.formulario.oficios.options[document.formulario.oficios.selectedIndex].value)">
 <option value="0">--SELECCIONA UN OFICIO--</option>
 <option value="1">EMPLEADO</option>
 <option value="2">VENDEDOR</option>
 <option value="3">DIRECTOR</option>
 <option value="4">ANALISTA</option>
 <option value="5">PRESIDENTE</option>
 </select>
 <br/><br/>
 </form>
 </div>
 <br/><br/>
 <div id="divtabla" class="c1">
 </div>
 <br/><br/>

Última edición por Tik3r; 23/05/2009 a las 07:59 Razón: contenido HTML erroneo
  #2 (permalink)  
Antiguo 22/05/2009, 10:50
 
Fecha de Ingreso: octubre-2008
Mensajes: 32
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Ayuda con clase XAJAX Y MySQL

Bueno pongo aqui la clase MySQL porque la clase XAJAX es mas bien una libreria... jeje

Código PHP:
<?php

class DataBase {

    private 
$conexion;
    private 
$resource;
    private 
$sql;
    public static 
$queries;
    private static 
$_singleton;

    public static function 
getInstance(){
        if (
is_null (self::$_singleton)) {
            
self::$_singleton = new DataBase();
        }
        return 
self::$_singleton;
    }

    private function 
__construct(){
        
$this->conexion = @mysql_connect('localhost','user','pass');
        
mysql_select_db('db'$this->conexion);
        
$this->queries 0;
        
$this->resource null;
    }

    public function 
execute(){
        if(!(
$this->resource mysql_query($this->sql$this->conexion))){
            return 
null;
        }
        
$this->queries++;
        return 
$this->resource;
    }

    public function 
alter(){
        if(!(
$this->resource mysql_query($this->sql$this->conexion))){
            return 
false;
        }
        return 
true;
    }

    public function 
loadObjectList(){
        if (!(
$cur $this->execute())){
            return 
null;
        }
        
$array = array();
        while (
$row = @mysql_fetch_object($cur)){
            
$array[] = $row;
        }
        return 
$array;
    }

    public function 
setQuery($sql){
        if(empty(
$sql)){
            return 
false;
        }
        
$this->sql $sql;
        return 
true;
    }

    public function 
freeResults(){
        @
mysql_free_result($this->resource);
        return 
true;
    }

    public function 
loadObject(){
        if (
$cur $this->execute()){
            if (
$object mysql_fetch_object($cur)){
                @
mysql_free_result($cur);
                return 
$object;
            }
            else {
                return 
null;
            }
        }
        else {
            return 
false;
        }
    }

    function 
__destruct(){
        @
mysql_free_result($this->resource);
        @
mysql_close($this->conexion);
    }
}
?>
Weno en teoria si seleccionara una opción me tenia que aparecer una tabla con los resultados de la consulta, pero cuando lo hago la aplicación no me hace nada :(

Si alguien puede ayudarme se lo agradeceria
  #3 (permalink)  
Antiguo 23/05/2009, 08:00
 
Fecha de Ingreso: octubre-2008
Mensajes: 32
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Ayuda con clase XAJAX Y MySQL

Nadie puede ayudarme?? Creo que el error esta aqui:
Código:
<select name="oficios" onchange="xajax_generar_tabla(document.formulario.oficios.options[document.formulario.oficios.selectedIndex].value)">
Es que no se muy bien como funciona javascript todabia :(
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 22:00.