| [ Index ] |
PHP Cross Reference of JPSpan 0.4 (beta) |
[Summary view] [Print] [Text view]
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>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Fri Nov 26 11:42:46 2004 | Cross-referenced by PHPXref 0.6 |