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

Ayuda con XAJAX

Estas en el tema de Ayuda con XAJAX en el foro de Frameworks JS en Foros del Web. Hola a todos, quisiera saber si es posible trabajar xajax con php orientado a objetos, ya que estoy intentando llamar la función xajax_Ejemplo() desde el ...
  #1 (permalink)  
Antiguo 08/10/2008, 15:13
 
Fecha de Ingreso: mayo-2007
Ubicación: Los Teques -Edo Miranda
Mensajes: 43
Antigüedad: 17 años, 6 meses
Puntos: 0
Ayuda con XAJAX

Hola a todos, quisiera saber si es posible trabajar xajax con php orientado a objetos, ya que estoy intentando llamar la función
xajax_Ejemplo() desde el onsubmit del formulario y me dice que no reconoce la función, cuando ya está función si está registrada
Código HTML:
//ejemploPantalla.php
<html>
<head>
<script>
     xajax_Ejemplo(xajax.getFormValues('ejemploForm')); 
</script>
</head>
</html> 
desde la pantalla (que no es más que el código HTML), y luego esta pantalla es llamada en otro archivo llamado ejemploControl.php

Código PHP:
<?php
include('xajax/xajax.inc.php');
include(
'ejemploModelo.php'); // esta es una clase 

$xajax = new xajax();
$ejemploModelo = new ejemploModelo();

$ejemploModelo->IniciarXajaxEjemplo($xajax); 
include(
ejemploPantalla.php);

$ejemploModelo->Ejemplo($formulario);// EL HTML NO RECONOCE ESTA FUNCION

?>
Código PHP:
//Archivo EjemploModelo.php

<?php

   
class ejemploModelo{
    
//VARIABLES
    //FUNCIONES GETS y SETS
   
    
public function IniciarXajaxEjemplo($xajax){
          
$xajax->setCharEncoding('ISO-8859-1');
      
$xajax->decodeUTF8InputOn();

      
$xajax->registerFunction("Ejemplo");      

       
//EL OBJETO XAJAX TIENE QUE PROCESAR CUALQUIER PETICION
      
$xajax->processRequests();
      return 
$xajax;
    }

   public function 
Ejemplo($formulario){
          
$bd = new BaseDatos();
          
//INSTANCIAMOS EL OBJETO PARA GENERAR LA REPUESTA CON XAJAX
        
$resultado = new xajaxResponse('ISO-8859-1'); 

          
$this->setNombre($formulario['nombre']);
          
$this->setApellido($formulario['apellido']);
        
          
$resultadoBD $bd->AgregarPersona($this->getNombre,$this->getApellido);   // Esto devuelve un string con un mensaje       
         
          //escribimos en la capa con id="respuesta" el texto que aparece en $salida
      
$resultado->addAssign("detallesPersona","innerHTML",$resultadoBD);

      
//tenemos que devolver la instanciación del objeto xajaxResponse
      
return $resultado;
          
  }
  }

?>
Espero que me puedan ayudar, Adios y gracias de Antemano
  #2 (permalink)  
Antiguo 08/10/2008, 15:53
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: Ayuda con XAJAX

Tema trasladado a AJAX.
  #3 (permalink)  
Antiguo 09/10/2008, 14:24
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 17 años
Puntos: 14
Respuesta: Ayuda con XAJAX

Hola

La respuesta es NO, xajax esta hecho de tal forma que puedas invocar una funcion desde un evento javascript, para llamar un METODO de una clase debes crear el objeto primero, sin embargo esto no deberia ser un problema no toda tua plicaion tiene q estar orientada a objetos necesariamente, puede crear un archivo en el q tengas todas las funciones que llamas con xajax y desde estas funciones creas los objetos q necesites

Suerte
__________________
My path is lit by my own fire, I only go where I desire
  #4 (permalink)  
Antiguo 24/10/2008, 10:45
 
Fecha de Ingreso: agosto-2006
Mensajes: 18
Antigüedad: 18 años, 3 meses
Puntos: 0
Ayuda con listas dependientes usando XAJAX

Saludos a la comunidad, recientemente he conocido Xajax y comenze a realizar unos ejemplos para irme adaptando al mismo, mas sin embargo he tenido ciertos errores que no he logrado corregir y espero me ayuden.
Tengo tres listas dinamicas, que muestran informacion sobre las BD, tablas y campos de la pc local. en donde la 1era se carga inicialmente, la segunda depende del valor seleccionado de la primera y la tercera del valor seleccionado de la segunda. ahora bien no consigo cargar los valores de la tercera lista . Abajo el codigo que tengo:


<?php

require ('./xajax/xajax_core/xajax.inc.php');

$xajax = new xajax();

function procesar_campos($indice, $form_entrada)
{
if ($indice!=0)
{


/*$bd="127.0.0.1";
$puerto="3306";
$usuario="root";
$passw="";

$conex = mysql_connect($bd.":".$puerto, $usuario, $passw);
mysql_select_db ($form_entrada["nombre"],$conex);

$res = mysql_query('select * from '.$form_entrada["tablas"], $conex);

$nuevo_select = '<td>';
echo '<select name="campos" id="campos">';
for ($i=0; $i<mysql_num_fields($res); $i++){
echo '<option>'.$row->Tablas;
echo mysql_field_name($res, $i) . "\n";}

mysql_free_result($res);

$nuevo_select .= '</td></tr></table></form></div>';*/

$salida = "Datos seleccionados:<p>";
$salida .= "Tabla: ". $form_entrada["tablas"];
$salida .= "<br> id: ". $indice;

}
else
{ //$nuevo_select = '</tr></table></form></div>';
$salida = "Debe seleccionar la tabla" ;
}

$respuesta = new xajaxResponse();
$respuesta->assign("seleccampo", "innerHTML", $salida);

return $respuesta;
}

function crear_form($form)
{
$bd="127.0.0.1";
$puerto="3306";
$usuario="root";
$passw="";
$db=$form["nombre"];

$link = mysql_connect($bd.":".$puerto, $usuario, $passw);
$db_list = mysql_list_dbs($link);

$cuerpo = '<div id="mensaje">';
$cuerpo .= '<form name="formulario" id="formulario">';
$cuerpo .= '<table>';
$cuerpo .= '<tr>';
$cuerpo .= '<td>Base de datos</td>';
$cuerpo .= '<td>Tablas</td>';
$cuerpo .= '<td>Campos</td>';
$cuerpo .= '</tr>';
$cuerpo .= '<tr><td>';
$cuerpo .= '<select name="nombre" id="nombre" onchange="xajax_procesar_formulario(document.formu lario.nombre.selectedIndex, xajax.getFormValues(\'formulario\'))">';
$cuerpo .= '<option value=0 selected>Seleccione una BD</option>';
while ($row = mysql_fetch_object($db_list)) {
if ($db==$row->Database) {$cuerpo .= '<option value='.$row->Database.' selected>'.$row-> Database; }
else {$cuerpo .= '<option value='.$row->Database.'>'.$row->Database; }
}
mysql_free_result($db_list);
$cuerpo .= '</td>';
return $cuerpo;
}

function procesar_formulario($indice, $form_entrada)
{

if ($indice!=0)
{
$bd="127.0.0.1";
$puerto="3306";
$usuario="root";
$passw="";

mysql_connect($bd.":".$puerto, $usuario, $passw);
$result = mysql_list_tables($form_entrada["nombre"]);

$nuevo_select = crear_form($form_entrada);
$nuevo_select .= '<td>';
$nuevo_select .= '<select name="tablas" id="tablas" onchange="xajax_procesar_campos(document.formulari o.tablas.selectedIndex, xajax.getFormValues(\'formulario\'))">';
$nuevo_select .= '<option value=0 selected>Seleccione una Tabla</option>';
while ($row = mysql_fetch_row($result)) {
$nuevo_select .= '<option '.$row->Tablas.'>'.$row->Tablas;
$nuevo_select .= "$row[0]\n";
}
mysql_free_result($result);

$nuevo_select .= '</td><td><div id="seleccampo"> </div></td></tr></table></form></div>';

}
else
{ $nuevo_select = crear_form($form_entrada);
$nuevo_select .= '</tr></table></form></div>';

}

$respuesta = new xajaxResponse();
$respuesta->assign("mensaje", "innerHTML", $nuevo_select);

return $respuesta;
}

$xajax->registerFunction("procesar_formulario");
$xajax->registerFunction("procesar_campos");
$xajax->processRequest();
?>


<html>

<head>
<title>Lista dinámica con xajax</title>
<?php $xajax->printJavascript('./xajax/'); ?>
</head>

<body>
<div id="mensaje">
<form name="formulario" id="formulario">

<table>

<tr>
<td>Base de datos</td>

<td>Tablas</td>

<td>Campos</td>
</tr>

<?php

$bd="127.0.0.1";
$puerto="3306";
$usuario="root";
$passw="";
$i=1;

$link = mysql_connect($bd.":".$puerto, $usuario, $passw);
$db_list = mysql_list_dbs($link);
echo '<tr><td>';?>
<select name="nombre" id="nombre" onchange="xajax_procesar_formulario(document.formu lario.nombre.selectedIndex, xajax.getFormValues('formulario'))">
<?php echo '<option value=0 selected>Seleccione una BD</option>';
while ($row = mysql_fetch_object($db_list)) {
if ($sel1==$row->Database) {echo '<option value='.$row->Database.' selected>'.$row->Database; }
else {echo '<option value='.$row->Database.'>'.$row->Database; }
}
mysql_free_result($db_list);
echo '</td>';
echo '<td><div id="selectabla"> </div></td>';
echo '<td><div id="seleccampo"> </div></td></tr>';
?>
</table>

</form>
</div>
</body>
</html>


Se que no me trae el valor seleccionado de la 2da lista, pero no logro como traerlo, si alguien podria indicarme como hacerlo se los agradeceria
  #5 (permalink)  
Antiguo 04/11/2008, 18:01
Avatar de eall  
Fecha de Ingreso: noviembre-2008
Ubicación: Concepcion
Mensajes: 127
Antigüedad: 16 años
Puntos: 8
Respuesta: Ayuda con XAJAX

Tal como te dice foreverOdd tienes que crear tus metodos en php que llamen a tus clases debido a que el unico que puede llamar los metodos de una clase en una instancia de esa clase por lo que por muy funcion que sea y la tengas registrada (segun la POO) JAMAS podrás acceder a esa función.

espero te ayude.
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 02:08.