One interesting subject that has come up in the the xajax project forum is using our xajax library to implement PHP driven Ajax for XUL applications written to run in Mozilla based browsers like Firefox. In case you don’t know about it already, XUL is Mozilla’s XML-based User interface Language. Developers use XUL to create extensions for Firefox, among other things.
Using xajax with xul is only in the beginning stages of exploration, but I look forward to what comes out of it. While it does not work with today’s xajax beta test, I’ve made a slight modification to the development version of xajax in CVS that makes it so that it will work with XUL, and I’ve added a couple of very simple examples to the repository as well. These changes will be included in the official release of xajax 0.2 after the beta test in complete.
Here is an example for the curious. We have two files, a .php server file that processes requests from the xul application, and a .xul application xml file.
xulServer.php:
<?php
// xulServer.php demonstrates a XUL application with xajax
// XUL will only work in Mozilla based browsers like Firefox
// using xajax version 0.2
// http://xajaxproject.org
require_once("xajax.inc.php");
function test()
{
$objResponse = new xajaxResponse();
$objResponse->addAlert("Hello World!");
$objResponse->addAssign('testButton','label','Success!');
return $objResponse->getXML();
}
$xajax = new xajax();
$xajax->registerFunction("test");
$xajax->processRequests();
?>
If you want to create a standalone XUL app that is not generated by PHP you have to hardcode the javascript variables and links in your xul code instead of using the printJavascript() function and you have to use the xajax.call() function to call your xajax functions instead of the “xajax_” functions that are normally generated by the PHP xajax library.
xulClient.xul:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<head>
<link rel="stylesheet" type="text/css"
href="/css/default.css"/>
<script type="application/x-javascript">
var xajaxRequestUri="xulServer.php";
var xajaxDebug=false;
var xajaxStatusMessages=false;
var xajaxDefinedGet=0;
var xajaxDefinedPost=1;
</script>
<script type="application/x-javascript"
src="http://www.sixteensmallstones.org/xajax_js/xajax.js">
</script>
</head>
<xul:button id="testButton" oncommand="xajax.call('test',[]);"
label="Test"/>
</html>
I’ll be interested in seeing where our xajax users will go with this.




Howdy! Definately an interesting technology. We’re working on a XUL/XAJAX team project as part our CS degree. It’s a workflow and document management system and doing it with XUL/XAJAX has opened one or two eyes in the university (UCC in Ireland in case anyone’s wondering). Any comments on how we’re doing would be nice, we are students after all. XAJAX seems to be coming a bit into the mainstream now, (it was even mentioned in one of our courses this year) so definately something I’d consider working with in the future. Oh, cheers for the example, helped us get going!
If anyone’s interested, just click on my name to visit the project website.