[ Index ]

PHP Cross Reference of JPSpan 0.4 (beta)

title

Body

[close]

/examples/ -> postoffice_client.php (source)

   1  <?php
   2  // $Id: postoffice_client.php,v 1.2 2004/11/15 21:23:15 harryf Exp $
   3  require_once  '../JPSpan.php';
   4  
   5  // Compress the Javascript
   6  define('JPSPAN_RENDER_FORMATTING',FALSE);
   7  
   8  require_once JPSPAN . 'Include.php';
   9  JPSpan_Include_Register('util/data.js');
  10  JPSpan_Include_Register('encode/php.js');
  11  JPSpan_Include_Register('request/post.js');
  12  
  13  header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); 
  14  header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" ); 
  15  header( "Cache-Control: no-cache, must-revalidate" ); 
  16  header( "Pragma: no-cache" );
  17  
  18  function path() {
  19      $basePath = explode('/',$_SERVER['SCRIPT_NAME']);
  20      $script = array_pop($basePath);
  21      $basePath = implode('/',$basePath);
  22      if ( isset($_SERVER['HTTPS']) ) {
  23          $scheme = 'https';
  24      } else {
  25          $scheme = 'http';
  26      }
  27      echo $scheme.'://'.$_SERVER['SERVER_NAME'].$basePath;
  28  }
  29  
  30  ?>
  31  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  32  <html>
  33  <head>
  34  <title> PostOffice Server Demo </title>
  35  <script type="text/javascript">
  36  <?php JPSpan_Includes_Display(); ?>
  37  
  38  var baseUrl = "<?php path();?>/postoffice_server.php";
  39  
  40  function echo(string) {
  41      document.getElementById("results").innerHTML += string;
  42  }
  43  
  44  function clear() {
  45      document.getElementById("results").innerHTML = "";
  46  }
  47  
  48  function add() {
  49      clear();
  50      var c = new JPSpan_HttpClient();
  51      var r = new JPSpan_Request_Post(new JPSpan_Encode_PHP());
  52      r.serverurl = baseUrl+'/math/add/';
  53      r.addArg('first',document.getElementById("x").value);
  54      r.addArg('second',document.getElementById("y").value);
  55      c.asyncCall(r, ResponseHandler);
  56  }
  57  
  58  function subtract() {
  59      clear();
  60      var c = new JPSpan_HttpClient();
  61      var r = new JPSpan_Request_Post(new JPSpan_Encode_PHP());
  62      r.serverurl = baseUrl+'/math/subtract/';
  63      r.addArg('first',document.getElementById("x").value);
  64      r.addArg('second',document.getElementById("y").value);
  65      c.asyncCall(r, ResponseHandler);
  66  }
  67  
  68  function divide() {
  69      clear();
  70      var c = new JPSpan_HttpClient();
  71      var r = new JPSpan_Request_Post(new JPSpan_Encode_PHP());
  72      r.serverurl = baseUrl+'/math/divide/';
  73      r.addArg('first',document.getElementById("x").value);
  74      r.addArg('second',document.getElementById("y").value);
  75      c.asyncCall(r, ResponseHandler);
  76  }
  77  
  78  function listColors() {
  79      var c = new JPSpan_HttpClient();
  80      var r = new JPSpan_Request_Post(new JPSpan_Encode_PHP());
  81      r.serverurl = baseUrl+'/colors/listcolors/';
  82      try {
  83          var result = c.call(r);
  84          try { 
  85              var dataFunc = eval(result);
  86              try {
  87                  colors = dataFunc();
  88                  echo ('<h2>A Short List of Colors</h2>');
  89                  for (var i=0;i<colors.length;i++) {
  90                      echo ("<br>");
  91                      for (prop in colors[i]) {
  92                          if ( prop == 'toPHP' ) {
  93                              continue;
  94                          }
  95                          echo (colors[i][prop]+" : ");
  96                      }
  97                  }
  98              } catch (e) {
  99                  alert ('['+e.name+'] '+e.message);
 100              }
 101          } catch (e) {
 102              alert ('['+e.name+'] '+e.message);
 103          }
 104      } catch (e) {
 105          alert(e);
 106      }
 107  }
 108  
 109  var ResponseHandler = {
 110      onLoad: function(result) {
 111          try {
 112              var dataFunc = eval(result);
 113              try {
 114                  echo(dataFunc());
 115              } catch (e) {
 116                  alert ('['+e.name+'] '+e.message);
 117              }
 118          } catch (e) {
 119              alert ('['+e.name+'] '+e.message);
 120          }
 121      },
 122      onError: function(e) {
 123          alert(e.message);
 124      }
 125  }
 126  -->
 127  </script>
 128  </head>
 129  <body>
 130  <h1>PostOffice Server Demo</h1>
 131  <p>Demo of JPSpan_PostOffice with hand-coded client. All "number crunching" here happens on the server (in PHP).</p>
 132  <p>In this example the client Javascript is hand coded (hacked ;))</p>
 133  <form id="mathForm">
 134  X: <input id="x" type="text" value="2" size="2"><br>
 135  Y: <input id="y" type="text" value="2" size="2"><br>
 136  <input type="button" onClick="add()" value="Add"><br>
 137  <input type="button" onClick="subtract()" value="Subtract"><br>
 138  <input type="button" onClick="divide()" value="Divide"> (see what happens if you set Y to zero)<br>
 139  </form>
 140  <a href="javascript:listColors()">Get a list from the server</a>
 141  <h2>Response from Server</h2>
 142  <div id="results">
 143  </div>
 144  </body>
 145  </html>


Generated: Fri Nov 26 11:42:46 2004 Cross-referenced by PHPXref 0.6