<< First Simple Example | Contents | Arrays >> |
Parameters
DOAP functions can have parameters passed to them. At the client end these are put into an array and passed to the DOAP.call method.When a function is registered on the DOAP Server you specify a minimum and maximum number of parameters. If the function is called with too many or too few an error will be generated.
Please note DOAP currently supports a maximum of 10 parameters
The passing and handling of parameters is shown in the following example (click here to see it run).
Server-Side DOAP Server PHP
<?php ob_start(); // ensure no messy output from includes // Our Addition Function - takes two numbers and adds them function addition($one, $two) { // sanitise user input just in case... if (!is_numeric($one) || !is_numeric($two)) return 0; // return the sum return $one + $two; } require("xmlcreate.inc.php"); // include the xmlCreate library require("doap.inc.php"); // include the DOAP Server library $doap = new DOAP_Server(); // create a DOAP Server object // register the addition function with a minimum and maximum of 2 parameters // e.g. there must be two parameters $doap->Register("addition",2,2); ob_clean(); // clean any messy output from includes $doap->Process(); // get DOAP Server to process the request ?>
The above code registers the addition() function with the DOAP Server requiring a minimum and maximum of two parameters. The function itself just checks the data is numeric and if so returns the sum of the two values.
Client-Side DOAP Server HTML/JavaScript
<HTML> <HEAD> <TITLE>DOAP Example 2: Parameters</TITLE> <!-- Include the DOAP Client JavaScript --> <SCRIPT TYPE="text/javascript" SRC="doap.js"></SCRIPT> <SCRIPT TYPE="text/javascript"> var doap = new DOAP(); // create the DOAP Client object doap.url = "example2.php"; // set the DOAP Server URL function addition() // this will get parameters and call addition() on the server { try { var params = Array(); // parameters are passed in an array params.push(document.forms.addform.one.value); // the first number params.push(document.forms.addform.two.value); // the second number var result = doap.call('addition',params); // call addition() on server passing params } catch(e) // catch any errors { // deal with any errors if it's a DOAP error or any other type of exception if(e instanceof DOAP_Error) alert("DOAP Error "+e.code+": "+e.desc); else alert("Unknown Error: "+e); return; // and exit the function if an error was encountered } // otherwise put the result into the results DIV document.getElementById('results').innerHTML = result; } </SCRIPT> </HEAD> <BODY> <DIV ID="results" CLASS="result_div">Results will appear here BY MAGIC!</DIV> <BR /><BR /> <!-- This time we have a form to input two numbers which will be added by the server --> <FORM ID="addform" onSubmit="return false;"> <!-- Start the form --> <!-- The fields --> <INPUT TYPE="TEXT" NAME="one" SIZE="3" VALUE="1"> + <INPUT TYPE="TEXT" NAME="two" SIZE="3" VALUE="2"> <!-- The Submit Button which in it's onClick calls the JavaScript addition() function --> <INPUT TYPE="SUBMIT" VALUE="Calculate" onClick="addition();"> </FORM> <BR /><BR /> <!-- And a link to clean the results div back if needed --> <A HREF="#" onClick="document.getElementById('results').innerHTML='<BR />';">Clear Results DIV</A> </HTML>
The client script initialises DOAP and displays a form to input two values. When the button is clicked the addition() function is called which puts the two values into a parameter array and does a DOAP.call for the addition function.
<< First Simple Example | Contents | Arrays >> |