Home > Spanish, Uncategorized > Libreria XAJAX en PHP

Libreria XAJAX en PHP

Xajax es una biblioteca código abierto de PHP capaz de generar aplicaciones Web con tecnología AJAX.
Xajax utiliza una forma de trabajo de funciones, designando qué funciones o métodos de código PHP se convierten en funciones AJAX
Puede descargarlo Aqui

Ejemplo 1 : Xajax y funciones PHP

<?php
//Incluir con PHP el archivo donde está la clase xajax
require (‘xajax/xajax_core/xajax.inc.php’);

//Instanciamos el objeto de la clase xajax
$xajax = new xajax();

//Escribimos una función en PHP, que luego llamaremos con por medio de ajax
function cambia_texto($mensaje){

//instanciamos el objeto para generar la respuesta con ajax
$respuesta = new xajaxResponse();
//escribimos en la capa con id=”mensajeDiv” el texto de $mensaje
$respuesta->assign(“mensajeDiv”,”innerHTML”,$mensaje);
//tenemos que devolver la instanciación del objeto xajaxResponse
return $respuesta;
}
//asociamos la función creada anteriormente al objeto xajax
$xajax->registerFunction(“cambia_texto”);
//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequest();
?>

<html>
<head>
<!– En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario –>
<?php $xajax->printJavascript(“xajax/”); ?>
</head>
<body>
<!– Se llama a la funcion javascript generada por xajax con el prefijo ‘xajax_’ seguida del nombre de la funcion creada con php –>
<input type=”button” onclick=”xajax_cambia_texto(‘Hola Ajax’);” value=”Pulsa” />
<div id=”mensajeDiv”></div>
</body>
</html>

Ejemplo 2: Xajax y objetos

<?php
//Incluir con PHP el archivo donde está la clase xajax
require_once(“xajax/xajax_core/xajax.inc.php”);
//Creamos la clase cuyo metodo utilizara el xajaxResponse
class alumno{
private $mensaje=”Ajax”;
public function hola(){
//instanciamos el objeto para generar la respuesta con ajax
$objResponse = new xajaxResponse();
//En este caso el metodo lanzara un alert js con el texto “Ajax”
$objResponse->alert(‘Hola ‘.$this->$mensaje);
//Devolvemos el objeto xajaxResponse
return $objResponse;
}
}
$alumno = new alumno()
//Instanciamos el objeto de la clase xajax
$xajax = new xajax();
//asociamos el metodo del objeto $alumno al objeto xajax con un array(“nombreEnJS”,$objeto,”metodo”)
$xajax->registerFunction(array(“miFuncion”, $alumno,”hola”));
//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequest();
?>

<?php $xajax->printJavascript(“xajax/”) ?>
<input type=”submit” value=“Llamar” onclick=”xajax_miFuncion(); return false;”>

METODOS DE LA CLASE XAJAX

$xajax = new xajax();
$xajax->setFlag(“debug”, true);
$xajax->setFlag(“decodeUTF8Input”, true);
$xajax->setFlag(“characterEncoding”,’ISO-8859-1′);
$xajax->registerFunction(“miFuncion”);
$xajax->processRequest();

METODOS DE LA CLASE AJAXRESPONSE

$objResponse = new xajaxResponse();
$objResponse->redirect(“http://www.google.com&#8221;);
$objResponse->alert(“Mostramos un alert.”);
$objResponse->confirmCommands(2, “Mensaje que pregunta?”);
$objResponse->call(“funcionJS”, “arg 1″, “arg N” );
$objResponse->includeScript(archivo.js);
$objResponse->assign(“etiqDiv”, “innerHTML”, “dato”);
$objResponse->assign(“etiqueta3”, “style.width”, “25%”)
$objResponse->remove(“etiqDiv”);

Ejemplo 3 : Formularios Xajax

<?php
require_once(“xajax/xajax_core/xajax.inc.php”);
function testForm($formData){
$objResponse = new xajaxResponse();
$objResponse->assign(“submittedDiv”, “innerHTML”, nl2br(print_r($formData, true)));
return $objResponse;
}
$xajax = new xajax(); $xajax->registerFunction(“testForm”);
$xajax->processRequest();
?>

<form id=”testForm1″ onsubmit=”return false;”>
<input type=”text” name=”textInput” value=”text” />
<input type=”text” name=”textInput2″ value=”text” />
<select id=”select” name=”select”>
<option value=”1″>One</option> <option value=”2″>Two</option>

<option value=”3″>Three</option>

<option value=”4″>Four</option>
</select>
<input type=”submit” value=“submit por xajax” onclick=”xajax_testForm(xajax.getFormValues(‘testForm1’)); return false;” />
</form>
<div id=”submittedDiv”></div>

Ejemplo 4 : Llamar una funcion javascript desde codigo php

<?php
require(“xajax/xajax_core/xajax.inc.php”);
function callScript() {
$response = new xajaxResponse();
$value2 = “elemento 2”;
$response->call(“myJSFunction”, “argumento 1”, 9432.12,
array(“myKey” => “elemento 1”, “key2” =>$value2));
return $response;
}
$xajax = new xajax();

$xajax->registerFunction(“callScript”);

$xajax->processRequest();
?>

<?php $xajax->printJavascript(“xajax/”) ?>
<script type=”text/javascript”>
function myJSFunction(Argtext, ArgNum, ArrayArg) {
var newString = Argtext + ” y ” + (+ ArgNum + 100) + “\n”;
newString += ArrayArg[“myKey”] + ” | ” + ArrayArg.key2;
alert(newString);
}
</script>
<input type=”button” value=”Click Me” onclick=”xajax_callScript()” />

CAMBIOS EN LA VERSION 0.5 XAJAX

$xajax->registerFunction(‘funcion’);
X
$xajax->register(XAJAX_FUNCTION, ‘funcion’);
$xajax->processRequests();
X
$xajax->processRequest();
Publica todos los métodos públicos de un objeto:
$xajax->register( XAJAX_CALLABLE_OBJECT, $objeto);

  1. ywarnier
    May 10, 2009 at 9:51 pm

    Sin embargo, sería bueno mencionar que dejamos de usar esta librería (al beneficio de JQuery) en Dokeos por tener problemas para hacer varias llamadas al mismo tiempo. Esperamos que esta librería se haya mejorado desde entonces.

  2. luismarcelo
    July 7, 2009 at 10:13 pm

    Muy bueno los ejemplos, estoy empezando a utilizar XAJAX y necesito tutoriales que tengan ejemplos similiares a lo que mencionas pero no los encuentro ni en la comunidad de xajax (http://community.xajaxproject.org/), talvez tu tengas algo preparado, o algo similar como un tutorial, porfavor y es que lo necesito con urgencia, gracias por tus ejemplos

  3. luismarcelo
    July 8, 2009 at 10:27 am

    Hola gente!, quisiera saber más sobre las librerias de includeScript o includeScriptOnce, porfavor ejemplos de como incluirlos en una función y se ejecunte a llamar a la función, sin que estos esten en en el cuerpo de html o en la cabecera de head, tengo dudas al respecto.

    Me explico,

    function mifuncionxajax(){
    $response = new xajaxResponse();
    $tabla .= “”;

    $tabla .= “”;

    $tabla .= “”;
    $objResponse->assign(“form11″,”innerHTML”,utf8_encode($tabla));

    $objResponse->script(‘Calendar.setup({inputField:”campo_fecha”, ifFormat:”%Y/%m/%d”, button:”lanzador” });’);

    return $objResponse;

    }
    Me dejo entender? porfa una ayuda
    Gracias.

  4. luismarcelo
    July 8, 2009 at 10:30 am

    en la parte de “tabla.=”;” va lo siguiente, nose que paso al subir mi comentario, en fin es lo siguiente:
    $tabla .= “”;

    $tabla .= “”;

    $tabla .= “”;

  5. luismarcelo
    July 8, 2009 at 10:33 am

    nose q ocurre pero es es justamente lo que quiero subir )> lo que son los js para que al momento de llamar a la funcion tambien llame los js que necesite y no este cargando todo el tiempo

  6. Deibenson
    August 18, 2009 at 11:37 am

    Saludos.

    Estoy comenzando con xajax.

    Quiero llamar una función xajax desde php. Por ejemplo:

    evaluo un submit
    if(isset($_POST[‘enviar2’])){
    //haga tal…
    }else{
    //llame a una funcion de xajax:
    echo”xajax_CambiarEstatus(‘”.$codigo.”‘)”; // no sé si está bien escrito pero me genera un error que el process_request tiene que ubicarse antes o algo asi.
    }

    function CambiarEstatus($codigo){
    $respuesta = new xajaxResponse();
    $respuesta->confirmCommands(1, “¿Está seguro?”);
    $respuesta->call(“xajax_continue_Cambiar(‘”.$codigo.”‘)”);
    return $respuesta;
    }

    Si alguien me puede ayudar.

    Gracias

    • February 8, 2010 at 6:23 pm

      Me parece que el error es de concepto. La llamada que tu estas haciendo normalmente se hace desde JavaScript, ya que es codigo de cliente, y el uso de ajax se centra en el cliente. Si quieres llamar a una función xajax desde php, prueba a llamarlo como a una función normal, el problema es que el valor que retorna debe devolverlo al cliente, ya que es el JavaScript el que va a acceder al DOM para modificarlo con el valor retornado desde ajax.

  7. Jorge Eduardo
    August 30, 2009 at 10:39 am

    Buenos dias tengo una pregunta , quiero saber como hacer con xajax para cambiar en cierta parte de lap pagina un contenido que es a su vez php y luego estando ahi voverlo a cambiar solo en esa parte, estoy leyendo los ejemplos pero solo hay como processar formularios y bottones no me ha seervido nada, si alguien sabe porfavor una nocion… gracias.

    • ywarnier
      August 30, 2009 at 4:49 pm

      Hola Jorge,

      Si tienes algo funcionando ya con los formularios, es muy simple partir de ahí y decir que, en lugar de cambiar un elemento del formulario, quiere cambiar un bloque de u página. Simplemente le das como elemento para cambiar el “id” del elemento mismo. Si lo usas en combinación con JQuery, hay buenos ejemplos en las explicaciones de la librería que implementan las llamadas AJAX. Por favor, no olvides que se trata de combinar JavaScript con PHP, y que no es suficiente hecharle un vistazo dos minutos para implementar AJAX de forma estable y segura. JQuery u otras librerías te ayudaran mucho, pero es necesario entender el procedimiento de este método para poder usarlo bien.

      Suerte y saludos!

  8. Mauricio
    September 13, 2009 at 2:59 pm

    Hola gente, estoy intentando aprender a usar ajax y la verdad que no me va bien.-

    Lei este post y me resulto interesante pero cuando corro el ejemplo me tira las siguientes lineas:

    Warning: include(xajax/xajax_core/xajax.inc.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\xajaxprueba\index.php on line 3

    Warning: include() [function.include]: Failed opening ‘xajax/xajax_core/xajax.inc.php’ for inclusion (include_path=’.;C:\php6\pear’) in C:\AppServ\www\xajaxprueba\index.php on line 3

    Fatal error: Class ‘xajax’ not found in C:\AppServ\www\xajaxprueba\index.php on line 6

    Me podrian dar una mano?

    Saludos

    • February 8, 2010 at 6:25 pm

      Me parece que le estas indicando mal a la función printJavaScript donde esta tu libreria xajax.

      ——————————————————-
      Juan Diego Navarro | Web Developer
      http://www.juandiegonavarro.blogspot.com

  9. wes
    March 24, 2010 at 12:10 am

    Hola, estan muy buenos los ejemplos pero tengo una duda,

    En la linea “” ¿es posible reemplazar el onclick por otro evento?, ¿ se puede sacar el botón y cargar los datos una vez que se llenan los text o se seleccione un option?

    Gracias de antemano

  10. Cristian Andonaegui
    August 29, 2012 at 4:57 am

    Buenas noches quisiera saber si en esta instrucción se pueden pasar parametros, ya que necesito pasar el ID de un empleado

    $respuesta->redirect(“http://localhost/hardware/maepro.php”);

    • Yannick Warnier
      August 29, 2012 at 5:53 am

      Hola Cristian, en BeezNest hace mucho tiempo que dejamos de usar Xajax a favor de JQuery, pero te recomiendo preguntes directamente en la comunidad de Xajax. Seguramente te puedan ayudar! Que te vaya bien!

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: