Larry,

Thank you. I think the problem is that the php file used in this
statement: 'tl.loadJSON("./data/mydatasource.php" isn't actually being
parsed by the server as php. I have some test data that works when
loaded from a 'test.js' file, so I took that data and put it into
"mydatasource.php", wrapped in a php print statement. The
mydatasource.php file basically just prints out the same exact data
that's in the test.js file, or was supposed to, but I don't think that
the php file is being run as a php file when loaded via the
tl.loadJSON function....so it's not actually returning anything.
That's my guess, anyway.

If I understand you correctly (and I'm not sure I do, lol) then could
I load the js var 'eventSource' with the data returned from the php
file? In other words,

1) I run the PHP file, collect the data and format it properly in the
JSON format,
2) the data from the php call is put into a PHP var named
"$thePHPvar",
2) Write a javascript statement like: "eventSource = $thePHPvar" to
load the js variable with the data from the php variable.

Or....am I completely misunderstanding the whole shebang here?

Should this statement:  tl.loadJSON("./data/mydatasource.php?"+ (new
Date().getTime()),

actually run the php file as a php file so it can do its thing,
or....?





On Apr 1, 3:58 pm, Larry Kluger <[email protected]> wrote:
> Hi LDM,
>
> The standard technique is to separate the presentation (the html file that 
> draws the Timeline) and the data (the data set).
>
> The statements
> tl.loadJSON("./data/myfile.js?"+ (new Date().getTime()),
>   function(json, url) {eventSource.loadJSON(json, url);}
> )
> can be confusing. Let's look at them in depth
>
> They do the following:
> 1) Tells Timeline to use Ajax to load the file at url "./data/myfile.js?"+ 
> (new Date().getTime())
> Note that the part   + (new Date().getTime())  is optional. It should only be 
> used if your data changes. It is used to defeat caching.
>
> The function loadJSON takes two arguments: the url, and a callback function.
>
> 2) Once the data has been retrieved, the function
>   function(json, url) {eventSource.loadJSON(json, url);}
> is called. It's called a "call back function" since it was given as an 
> argument to the function (loadJSON) which later calls it.
> It has two parameters (json, url) and its only statement is to call
>   eventSource.loadJSON(json, url);
>
> Note that eventSource is a js variable that was created earlier. --As the 
> result of calling
>             var eventSource = new Timeline.DefaultEventSource(0);
> If a variable other than eventSource was used previously, then the same var 
> would be used in the callback function.
>
> To summarize, the recommendation is that the user would call
>   my_timeline.html
>
> And then my_timeline.html would include a statement such as
> tl.loadJSON("./data/mydatasource.php?"+ (new Date().getTime()),
>   function(json, url) {eventSource.loadJSON(json, url);})
>
> Your php program, mydatasource.php, would ONLY return the json data 
> structure. It would be something like
> <?php
> // php code for reading data from the database goes here,
> // and the data gets returned as the PHP var "$timeline_data"
>
> echo $timeline_data;
> ?>
>
> Hope this helps.
>
> If, on the other hand, you want to cram everything into one php file, you can 
> do that. 
> Seehttp://code.google.com/p/simile-widgets/wiki/Timeline_DataInTheTimeli...
> for an example of how to do that. Note that in addition to being 
> architecturally less elegant, it will provide a worse user experience since 
> the user will not see anything from the web server until the php program has 
> retrieved the data from the database.
>
> But if you use the html program plus php mydatasource technique, the user 
> will first (quickly) see your html page with a nice "Loading" message across 
> a Timeline that shows dates, but not events. Then, once the data has been 
> retrieved, the user will see the events on the Timeline.
>
> Regards,
>
> Larry
>
> ________________________________
> From: JadedAngel <[email protected]>
> To: SIMILE Widgets <[email protected]>
> Sent: Wednesday, April 1, 2009 5:48:13 PM
> Subject: How to load timeline data that doesn't come from a file?
>
> My apologies in advance if I'm posting this in the wrong place. If
> that's the case, please let me know where this question should be
> asked.
>
> I'm developing an application that will read Timeline data from a
> mySQL database using PHP. At the moment (just to get things working)
> we're reading the data and then writing it to a temporary file (called
> 'myfile.js' in this example), with the data in JSON format.
>
> The current way Timeline loads the data is through this function:
>
> tl.loadJSON("./data/myfile.js?"+ (new Date().getTime()), function
> (json, url) {
>    eventSource.loadJSON(json, url);
>
> Rather than write to a file and then read it back in, we'd like to
> read from the database then and insert it directly into a javascript
> variable, something like:
>
> <?php
> // php code for reading data from the database goes here,
> // and the data gets returned as the PHP var "$timeline_data"
> ?>
> <script type='text/javascript'>
>
> // printed via PHP, the data is stuffed into the javascript var 'foo'
> var foo = <?php echo $timeline_data;  ?>;
>
> The problem is that I have no idea what javascript variable the data
> in 'myfile.js' is supposed to end up in. What would I replace the
> current data file loading lines with to insert the returned data
> directly into a javascript var so that TimeLine can use it?
>
> In other words, what Javascript variable does the data loaded through
> these two lines end up in:
>
> tl.loadJSON("./data/myfile.js?"+ (new Date().getTime()), function
> (json, url) {
>    eventSource.loadJSON(json, url);
>
> I thank you in advance for any help you may be able to offer.
>
> LDM
> [email protected]
> (Timeline n00b)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"SIMILE Widgets" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/simile-widgets?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to