You might want to take a look at this: http://code.google.com/webtoolkit/doc/latest/tutorial/JSON.html
Although the examples there are using a servlet for the server-side, that is not a requirement. The server simply needs to be accessible at the requested URL and output the formatted JSON. The basic idea is to make a request to the server and have the server send back the json data structure. You can then eval, or use a js json parser, and setup Overlay types so you get to use the objects like regular java objects. 2010/6/24 Jaroslav Záruba <[email protected]>: > I believe the module loads on document's load event, therefore pausing PHP > does not help indeed. > You can load the JSON using JsonpRequestBuilder. That means another > (XHR)request to server. If that's an issue I'd try to output the JSON using > PHP as you do now, but not into <script/> element. I would hide it within > the page and afterwards convert that JSON-string into a JS-object in GWT. > Or you could place the JSON-string into a <script/> element using GWT, tthat > should fire the addTreeItems-method right away. > When I needed to load some data from (3rd-party) server I created my > receiving JS-function and the <script/> element with src-attribute by myself > in onModuleLoad. It worked. And I guess that's similar to what the > JsonpRequestBuilder does, but I did not know that class before. I'm quite > new to GWT. > That's also kind of disclaimer: I'm not sure whether the above is the best > and most elegant solution. :) > On Fri, Jun 25, 2010 at 3:25 AM, [email protected] <[email protected]> > wrote: >> >> Thanks, that makes sense. However, do you have any suggestions on how >> I might work around it? I want to be able to load all of the data on >> startup, so I have called the PHP function that calls the javascript >> function in the <body> of the .php file. I tried to throw in a PHP >> sleep to delay the javascript from being called, but the sleep seems >> to also delay the loading of the module, thus really giving me no >> benefit. Any other suggestions would be great. >> >> On Jun 24, 8:47 pm, Jaroslav Záruba <[email protected]> wrote: >> > It seems that your <script/> might get evaluated/executed before the >> > module >> > has finished loading and therefore your function window.addTreeItem >> > might >> > not exist yet. >> > Several workarounds for that are possible I think. >> > >> > On Thu, Jun 24, 2010 at 9:39 PM, [email protected] >> > <[email protected]>wrote: >> > >> > >> > >> > > Hi everyone, >> > >> > > I am faced with a situation in which I must pass variables read in >> > > from a database table using PHP to my GWT application. I am doing this >> > > by using PHP to read in the data(which are Strings), and then calling >> > > a JSNI function from my GWT application like so: >> > >> > > $result = mysql_query("SELECT * FROM sampleTreeTable"); >> > >> > > while($row = mysql_fetch_array($result)) { >> > > $temp = $row['treeItem']; >> > > echo "<script language=javascript>addTreeItems('$temp');</ >> > > script>"; >> > > } >> > >> > > I know that my echo statement works, because when I call other locally >> > > defined javascript functions in the place of addTreeItems, they >> > > execute just fine. It is only the JSNI function addTreeItems that does >> > > not seem to execute. >> > >> > > The function addTreeItems is defined in the Java source code for my >> > > GWT application as follows: >> > >> > > public void serverAdd(String s) { >> > > //some code >> > > } >> > >> > > public native void setShowTrigger(TreeTest x)/*-{ >> > >> > > $wnd.addTreeItem = function(s) { >> > >> > > >> > > [email protected]::serverAdd(Ljava/lang/ >> > > String;)(s); >> > >> > > }; >> > > }-*/; >> > >> > > When running my GWT application in development mode, accessing >> > > addTreeItems through the html file works just fine, most of the time >> > > anyways. Sometimes when I first start debugging it will not execute, >> > > but if I refresh the page it always executes just fine. >> > > The real problem occurs once I compile my application and deploy it to >> > > my web server. I seem to be unable to call addTreeItems once my >> > > application is deployed. Once I deploy my GWT generated html file, I >> > > change the file from a .html to a .php file so that I can add the PHP >> > > code, and everything still works just fine except my JSNI addTreeItems >> > > method. >> > >> > > So basically, I am completely lost on this issue. Anyone have any idea >> > > how to accomplish what I am trying to do? I know I could use RPC to >> > > connect to the database and do most all of this within my GWT >> > > application, but the requirements of this project stipulate that I >> > > avoid doing so. Any help at all would be great. >> > >> > > -- >> > > You received this message because you are subscribed to the Google >> > > Groups >> > > "Google Web Toolkit" group. >> > > To post to this group, send email to >> > > [email protected]. >> > > To unsubscribe from this group, send email to >> > > >> > > [email protected]<google-web-toolkit%2Bunsubs >> > > [email protected]> >> > > . >> > > For more options, visit this group at >> > >http://groups.google.com/group/google-web-toolkit?hl=en. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google Web Toolkit" 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/google-web-toolkit?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Google Web Toolkit" 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/google-web-toolkit?hl=en. > -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" 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/google-web-toolkit?hl=en.
