<?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>
 
 
 |