<?php
 
 
require_once "../class.pAjax.php";
 
 
 
class Holder {
 
    var $sce;
 
    
 
    function Holder() {
 
        $this->sce = new SpecialCharExample();
 
    }
 
}
 
 
    
 
class SpecialCharExample {
 
    function SpecialCharExample() { }
 
 
    function getIt($str) {
 
        return array(substr($str, -2, 1), strlen($str));
 
    }
 
}
 
 
 
$holder = new Holder();
 
 
 
$AJAX = new pAjax;
 
$AJAX->disableDomainProtection();
 
$AJAX->enableExportProtection();
 
$AJAX->export("holder.sce.getIt");
 
$AJAX->handleRequest("UTF-8"); // Default response charset is UTF-8
 
 
?>
 
<!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>Special Char retriever</title>
 
        <?php $AJAX->showJavaScript(".."); ?>
 
        <script type="text/javascript">
 
              function Converter() {
 
                  pAjax.call(this);
 
                  pAjax.setDebugMode(true);
 
              }
 
 
 
              var _p = Converter.prototype = new pAjax;
 
              
 
 
              _p.convert = function (v) {
 
                  // Unlimited sub-objects supported
 
                  // In this example:
 
                  //
 
                  // + holder (class Holder)
 
                  // |-+ sce (class SpecialCharExample)
 
                  // | |-- getIt (method)
 
                  //
 
                  // Remember to set the property as public
 
                  //
 
                  // [TODO] Add support to factory calls. Currently, no factory is supported:
 
                  // $holder->getSce()->getIt($str)  <<< ERROR!
 
                var oRequest = this.prepare("holder.sce.getIt", pAjaxRequest.POST);
 
                oRequest.setParam("param", v);
 
                oRequest.execute(pAjaxRequest.ASYNC);
 
              }
 
              
 
 
              _p.onLoad = function () {
 
                var data = this.getResponse();
 
                
 
                alert("Retrieved text: " + data[0]);
 
                alert("Original length: " + data[1]);
 
              }
 
        </script>
 
    </head>
 
 
    <body>
 
        <input type="text" name="x" id="x" value="éõàüe" disabled="true" style="width: 50px;">
 
        <input type="button" name="check" value="Get Special Char (ü)"
 
            onclick="(new Converter()).convert(document.getElementById('x').value); return false;">
 
    </body>
 
</html>
 
 
 |