Integration in 7 easy steps:
Step1: Download the Example Code
Simply download the example code. The code is in the "AJAX ASP
Full Address" directory of our example downloads. Then copy, into
the same directory as your web page which requires Address Lookup, "SPL_AJAX_Full.js",
"SPLGetFullAddressStep1.asp" and "SPLGetFullAddressStep2.asp" files.
Step 2 : Add reference to our JavaScript file to your page
Then on your own web page header, add the following reference to
the JavaScript file your copied. This line is show in the "index.html"
file included in the example download, as is the rest of the code.
The following is an example of getting Premises Address data.
It simply returns demo data, but is actually calling our live server
to retrieve the data:
<script type="text/javascript" src="SPL_AJAX_Full.js"></script>
Step 3 : Add a Link, button or image to activate Postcode
Lookup
Then add either a link, using the following code to activate the
Postcode Lookup Web address selection list:
Example link to activate Postcode Lookup Window:
<a href= "javascript:SPLGetAddressData(document.getElementById('postcode').value)">Lookup Address from link</a>
Example Button to activate Postcode Lookup Window:
<input type=button value="Lookup Address" onClick= "javascript:SPLGetAddressData(document.getElementById('postcode').value)">
This could easily be changed to use a image button.
Note: In the above example the Postcode Text field must have an
ID of "postcode"
Step 4 : Copy Style for Text
When the inline selection box is shown for the user to select the
address, the following style statements should be added to the
header of the page to control the size of the selection box and the
text which appear below it.
Customise combo/text style
<STYLE type="text/css">
.SPLAddressListSt{
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
margin-top: 0;
margin-bottom: 0;
width: 80mm;}
.SPLAddressListStBottomLine{
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
text-align: center;
margin-top: 0;
margin-bottom: 0;
}
.SPLAddressListStErrorLine{
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
text-align: center;
margin-top: 0;
margin-bottom: 0;
}
.SPLAddressListLicenseLine{
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
text-align: center
margin-top: 0;
margin-bottom: 0;
}
</STYLE>
where:
SPLAddressListSt is the style of the address selection box
SPLAddressListStBottomLine is the style of the line below selection
box
SPLAddressListStErrorLine is the style of text which appears if
Postcode is not found
SPLAddressListLicenseLine is the style for the License information.
This is only shown if using "Internal License" to show number of
Users, etc
Of course the above style code can be placed in your own style
sheet.
Step 5 : Place DIV tag where Inline Combo Box should appear
The inline address selection list is shown where you define the
SPLSearchArea DIV tag. Basically our Postcode Lookup Server provides
the HTML to display the list box in the DIV tag, which is populated
by the AJAX call.
Combo placement
<tr>
<td></td>
<td>
<div id="SPLSearchArea" />
</td>
</tr>
In this case in a two column table
Step 6 : Map your Address fields
Now edit the JavaScript at the end of file "SPL_AJAX_Full.js", to
write the correct address lines, which result from the Postcode
Address Lookup function., back to your target web page fields:
Example address field mappings:
document.getElementById("postcode").value=POSTCODE;
document.getElementById("line1").value=LINE1;
document.getElementById("line2").value=LINE2;
document.getElementById("line3").value=LINE3;
document.getElementById("town").value=TOWN;
document.getElementById("county").value=COUNTY;
document.getElementById("country").value=COUNTRY;
document.getElementById("company").value=COMP;
The example code also shows how to write the address information
back to a "Memo" type field.
The UK Address data returned by the call is similar to our
Postcode XML Web service. The full address record is:
<record>
<id>11570840_0E</id>
<organisation>Comtek</organisation>
<line1>44 Victoria Road</line1>
<line2></line2>
<line3></line3>
<town>Wisbech</town>
<county>Cambridgeshire</county>
<postcode>PE13 2QL</postcode>
<country>England</country>
<deliverypointsuffix>NA</deliverypointsuffix>
<nohouseholds>NA</nohouseholds>
<smallorg>NA</smallorg>
<pobox>NA</pobox>
<rawpostcode>PE132QL</rawpostcode>
<mailsortcode>NA</mailsortcode>
<udprn>NA</udprn>
<unique>NA</unique>
<extra>NA</extra>
</record>
Step 7 : Specify the Data Key
Open an account with us. Within seconds you will then receive a
data key, by e-mail, which should be put in
"SPLGetFullAddressStep1.asp" and "SPLGetFullAddressStep2.asp" files.
This key will enable your account, for a 30 day evaluation period,
for one postcode area.
Identify your account:
$datakey = "PUT YOUR DATA KEY HERE";
Enter Postcode "ZZ99" to use test
data
Optional customisation
The text below the selection box can be changed by editing the
following line in the "SPLGetFullAddressStep1.php" file:
Change text (line 74):
XMLService = XMLService &
"&text=Please%20Select%20Address";
set to
XMLService = XMLService & "";
to suppress text
Number of Lines in Combo Box:
To change the number of lines in the selection box edit line 73
XMLService = XMLService & "&lines=8";
Show License information (for Internal Use):
Set to showlic=1 to show License status:
XMLService = XMLService & "&showlic=1";
How it Works
When the customer presses the [Find] button, then the function
SPLGetAddressData is called, passing the Postcode entered in your
Postcode field. This then calls the SPLGetFullAddressStep1.asp page
with the Postcode in the parameters, using the xmlHttp object
created when the page was opened on the browser. This xmlHttp object
provides AJAX (Asynchronous JavaScript and XML) to perform a
Asynchronous call the SPLGetFullAddressStep1.asp page, without a
complete page refresh.
The SPLGetFullAddressStep1.asp code on your web server then calls
our Postcode lookup web server for the address information, adding
your account information, etc. This means the client browser never
sees your account information.
When the SPLGetFullAddressStep1.asp page receives address
information from our Postcode lookup server it simply relays it back
to the web page (your page with address fields on the customers
computer) on the client computer.
The result of SPLGetFullAddressStep1.asp is then handled by the
JavaScript function SPLhandleRequestStateChange
which calls
SPLhandleServerResponse when fully complete.
Function SPLhandleServerResponse then reads the XML, if it DOES
NOT contain tag "<line1>" then it writes the response to the DIV
SPLSearchArea on your web page. The response contains all the HTML
to display the selection list, thus the list appears on your web
page on the client computer, in the DIV tag.
When the user clicks on an address line then the function
SPLAddressChange gets called, with the ID of the line selected. This
function then calls SPLGetFullAddressStep2.asp and writes nothing to
the DIV tag SPLSearchArea to hide the address selection list.
The web page SPLGetFullAddressStep2.asp on your server then again
relays the address information from our Postcode lookup server to
the client page on the customers computer.
Function SPLhandleServerResponse then reads the XML returned, if
it DOES contain tag "<line1>" then it writes the address information
to your address fields on your web page. Thus the address has been
written to your web page.
Why do you have to have extra pages on your server?
Reason 1
Some browsers, especially if the client has turned up the
security settings, may stop the client web page talking to a server
from different domain. So by adding a page into your web domain, to
relay the query to our Postcode address lookup server, removes this
security problem.
Reason 2
Hides your account information from the Client Web Browser
This example could easily be converted to any other server side
language, since the ASP pages are simply used to relay XML data from
our server. The clients side JavaScript would remain the same.
|