| 
<?php
 require "../class.pAjax.php";
 
 
 function complexStructure() {
 return array(
 array('prop' => 'value'),
 array('simple', 'another value'),
 'someProperty' => 'someValue',
 'another' => true,
 'htmlTest' => '<b>Item</b>'
 );
 }
 
 
 $AJAX = new pAjax;
 $AJAX->disableDomainProtection();
 $AJAX->enableExportProtection();
 $AJAX->export("complexStructure");
 $AJAX->handleRequest();
 
 ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
 <head>
 <title>Complex Structure Test</title>
 <?php $AJAX->showJavaScript(".."); ?>
 <script type="text/javascript">
 function ComplexStructure() {
 pAjax.call(this);
 pAjax.setDebugMode(true);
 }
 
 
 var _p = ComplexStructure.prototype = new pAjax;
 
 _p.execAction = function () {
 var oRequest = this.prepare("complexStructure", pAjaxRequest.POST);
 oRequest.execute(pAjaxRequest.SYNC); // Synchronized Mode Test
 }
 
 _p.onChange = function () {
 alert("Ready State: " + this.getReadyState());
 }
 
 _p.onLoad = function () {
 // getData is depreciate, use getResponse instead
 // Altho, getData is still supported for undeterminate period
 var data = this.getResponse();
 
 // Testing prefined property
 alert('Content of data[0].prop || data[0][\'prop\'] = ' + data[0].prop);
 
 for (var item in data) {
 alert('Content of data[' + item + '] = ' + data[item]);
 
 //for (var innerItem in data[item]) {
 //    alert('Content of data[' + item + '][' + innerItem + '] = ' + data[item][innerItem]);
 //}
 }
 }
 </script>
 </head>
 
 <body>
 This example deals with a complex data structure returned by server (associative array and indexed array).<br />
 Check out the alerts to know how is it treated.<br />
 <br />
 <input type="button" value="Test!" onclick="(new ComplexStructure()).execAction();" />
 </body>
 </html>
 
 |