views:

100

answers:

3

Hi All,

Here is what I've got right now...

I have a web page that when accessed, it connects to surveygizmo.com via their open API, retreives a whole lot of data, and then returns that data to me for processing on my end. This process takes roughly 10-12 seconds and while it is executing, the page just sits in the "loading" state and I'm shown a blank white page.

Here is what I want to happen...

When that same web page is accessed, I'd like it to kick off the script execution and begin retrieving the data from surveygizmo.com via their API in the same way I'm doing it now, but while that process is running, I would like there to be a "result are loading" page/message that is shown instead of the blank white page and then once the script execution finishes and all the results have been returned and processed, the "results are loading" page/message disappears.

I'm pretty familiar with php and javascript, but haven't been able to figure this one out yet. Any direction or advice on the matter would be greatly appreciated.

Thanks!

A: 

Create a loading page that displays your desired loading message. Then using ajax (I HIGHLY recommend jQuery) load a separate php file that loads the outside data. Once the data returns to your loading page, it's a simple task of hiding the loading message and replacing it with the output of the ajax.

Capt Otis
*I'd* suggest not using CAPITALS for **emphasis**. You can place a `*` before and after the words you want to emphasise for italic, or `**` for bold and (in answers, but not comments) `***` for italic and bold text. Also, I agree with your recommendation, [jQuery](http://api.jquery.com/)'s pure-awesome.
David Thomas
Yeah, I'm familiar with ajax, I just don't know if that would be the ideal solution for my particular problem.
lewisqic
A: 

You'll want to take a look at AJAX. The solution is to send the browser a "loading" page, which contains javascript that shows the loading message, and then connects to the actual data generating server-side script asynchronously. When you have received and processed the data, you can insert it into the DOM and remove the loading message. Googling for XMLHttpRequest will get you the details.

e.p.
+1  A: 
<?php

     echo "Working...<br/>\r\n"; flush(); //output to the browser before the rest of the execution

     connect_surveygizmo(); //this is going to take while.

     echo "Finished!";

?>
celalo