PHP Server to Client with No Refresh.

Although most of our companies work is template based design, the end result is always unique and adapts to each client's individual needs. The process of merging a client's content and style with our templates creates an opportunity to challenge ourselves and once again put our web design skills to the test. Recently, I found myself in a situation where it was necessary to pass information in the form of GET data from a simple flash button to a server side scripting language- all without reloading the current page. A client was running several different flash animated banners ads via XML layer popup, underlining some of her most popular website products and online services. She needed a simple way to track the overall efficiency of her small ad campaign. Specifically, she needed to know which banners were being clicked on and which banners were simply annoying or inconsequential to her client base. She also needed to know which were the most popular browsers accessing these pages.

I'll try to describe what needed to happen with out getting too techie.

An XML layer popup would pop up, offering the end user with a two options. In option A, one could click on the popup. This would take them to wherever the popup was designed to take them. Option B was for the end user to close the popup, and that would simply hide the XML layer's visibility property. At first, it sounded easy. However, beyond the obvious functionality of options A and B, each option needed to open, write, and save to an external file all without refreshing the current page. After all, the last thing anyone wants to see after closing a popup is another page pop up.

Nevertheless server side scripting languages, like PHP, require a refresh of the page to pass information. Unlike JavaScript which handles its business on the client side of a client server system via your browser (the client), PHP scripts are server-side because they operate solely on the server; data is sent to via POST or GET The script is then parsed, and the new data is sent back to the browser if necessary.

Here's the solution. I created the following

<iframe>. <IFRAME id="ifrMain" name="main" src="myscript.php" frameborder="0" width="0" height="0" scrolling="no" ></IFRAME>

Note that the SRC property is the location of our PHP script, which will be summoned later, to write and save to our external file. Notice our width and height properties are both set to zero.

I still submit the data to my PHP script, from within the flash banner popup with the help of ActionScript's cool little getURL() function:.

on(press){

GetURL("myscript.php?banner=this&action=close",&quo t;main", "GET");

}

However because the target (main) was loaded inside our little hidden <iframe>, only the <iframe> refreshes. The user will not see a window refresh, the scrip will be parsed by PHP and everyone lived happily ever after…