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”);
$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);

Comments

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.

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

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.

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

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

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.

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.

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!

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:AppServwwwxajaxpruebaindex.php on line 3

Warning: include() [function.include]: Failed opening ‘xajax/xajax_core/xajax.inc.php’ for inclusion (include_path=’.;C:php6pear’) in C:AppServwwwxajaxpruebaindex.php on line 3

Fatal error: Class ‘xajax’ not found in C:AppServwwwxajaxpruebaindex.php on line 6

Me podrian dar una mano?

Saludos

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