2009/1/28 Ryan Gahl <ryan.g...@gmail.com>: > Heh... nope, you got it. Just don't forget to include the semicolon at the > end when you return the jsonp version.
Wow. So the response is no longer JSON, but a function call. Add the appropriate headers (Thank you Gabriel) and Prototype will do it all automatically. I suppose, therefore, that the param COULD be the name of an instance of an object and a method? For example : o_TabControl.addTab WOW! That is excellent and really simple to implement. Thank you. Once again, you've covered my membership fee! Regards, Richard. > On Wed, Jan 28, 2009 at 9:37 AM, Richard Quadling <rquadl...@googlemail.com> > wrote: >> >> 2009/1/28 Ryan Gahl <ryan.g...@gmail.com>: >> > Ugh... I had a lot of typos there. Excuse me as I drink my morning >> > coffee >> > here :) >> > >> > >> > >> > On Wed, Jan 28, 2009 at 9:16 AM, Ryan Gahl <ryan.g...@gmail.com> wrote: >> >> >> >> More specifically, make sure it returns javascript (not just the data), >> >> and uses on of those content types... >> >> >> >> There is a pattern that should cover your needs, call JSONP (JSON with >> >> padding), Google "jsonp" for more info. Basically, you have your server >> >> endpoint setup to return json data (as normal), but then add a check >> >> for a >> >> querystring parameter called something like "jsonp". The value of that >> >> parameter then becomes the name of a function call that the server >> >> wraps the >> >> json data in. >> >> >> >> So, a normal request to http://localhost/somePage >> >> >> >> returns json: >> >> >> >> {"foo": "bar"} >> >> >> >> But adding the jspnp parameter to the request >> >> (http://localhost/somePage?jsonp=someFunction) >> >> >> >> returns javascript+json... >> >> >> >> someFunction({"foo": "bar"}); >> >> >> >> >> >> Note that this requires the "someFunction" function to be at the global >> >> scope level. >> >> >> >> There are many ways to skin this cat, really. JSONP is one of the >> >> simpler >> >> examples. >> >> >> >> >> >> Nice one Ryan. >> >> So, Serverside with no JSONP param does nothing extra. >> >> echo json_encode($a_Results);; >> >> With JSONP param, ... >> >> echo $_POST['JSONP'] . '(' . json_encode($a_Results) . ')'; >> >> Is that it? Seems really simple. So I must have misunderstood >> something along the way. >> >> >> >> >> On Wed, Jan 28, 2009 at 8:47 AM, Gabriel Gilini <gabr...@usosim.com.br> >> >> wrote: >> >>> >> >>> Just make sure that your server returns data with one of the following >> >>> content-types: application/ecmascript, application/javascript, >> >>> application/x-ecmascript, application/x-javascript, text/ecmascript, >> >>> text/javascript, text/x-ecmascript, or text/x-javascript >> >>> as explained in the API: http://www.prototypejs.org/api/ajax/options >> >>> >> >>> Gabriel Gilini >> >>> >> >>> www.usosim.com.br >> >>> gabr...@usosim.com.br >> >>> gabr...@souagil.com.br >> >>> >> >>> >> >>> On Wed, Jan 28, 2009 at 12:34 PM, Richard Quadling >> >>> <rquadl...@googlemail.com> wrote: >> >>>> >> >>>> Hi. >> >>>> >> >>>> Currently I use AJAX to send POST requests and receive JSON encoded >> >>>> data which is magically supplied as an object to me by Prototype in >> >>>> the onSuccess handler. >> >>>> >> >>>> I can then examine the data and process it as I need to. >> >>>> >> >>>> So far so good. >> >>>> >> >>>> I now need to do something I don't know how to do. >> >>>> >> >>>> The "processing" I mentioned above is essentially a switch statement >> >>>> which determines the processing I want. The specific case then >> >>>> extracts the parameters from the JSON object and calls the >> >>>> appropriate >> >>>> method/function with the extracted params. More functionality means >> >>>> more editing of this 1 function. >> >>>> >> >>>> What I want to achieve is a way to have my server supply the call >> >>>> that >> >>>> is to be made and when the response arrives at the client, it is just >> >>>> executed, without me having to decode it first. >> >>>> >> >>>> I want to have a shrink wrapped set of classes which are communicated >> >>>> with, essentially by the server. >> >>>> >> >>>> A simplistic example. >> >>>> >> >>>> Client performs some user interface action (clicks a button, drop >> >>>> down, >> >>>> etc.). >> >>>> This initiates an AJAX call to get some data. >> >>>> The server responds with the data using JSON. >> >>>> The onSuccess handler decodes the data client side and calls the >> >>>> appropriate functions to handle the response. >> >>>> >> >>>> I want this to become >> >>>> >> >>>> Client performs some user interface action (clicks a button, drop >> >>>> down, >> >>>> etc.). >> >>>> This initiates an AJAX call to get some data. >> >>>> The server responds with the data using JSON and the code required to >> >>>> handle the data. >> >>>> The onSuccess handler just runs the code. >> >>>> >> >>>> This will allow me to incrementally add functionality to the client >> >>>> as >> >>>> they move around the site. >> >>>> >> >>>> Regards, >> >>>> >> >>>> Richard Quadling. >> >>>> >> >>>> >> >>>> >> >>>> >> >>>> >> >>>> -- >> >>>> ----- >> >>>> Richard Quadling >> >>>> Zend Certified Engineer : >> >>>> http://zend.com/zce.php?c=ZEND002498&r=213474731 >> >>>> "Standing on the shoulders of some very clever giants!" >> >>>> >> >>>> >> >>> >> >>> >> >>> >> >> >> >> >> >> >> >> -- >> >> Ryan Gahl >> >> CEO >> >> Nth Penguin, LLC >> >> http://www.nthpenguin.com >> >> -- >> >> WebWidgetry.com / MashupStudio.com >> >> Future Home of the World's First Complete Web Platform >> >> -- >> >> Inquire: 1-920-574-2218 >> >> Blog: http://www.someElement.com >> >> LinkedIn Profile: http://www.linkedin.com/in/ryangahl >> > >> > >> > >> > -- >> > Ryan Gahl >> > CEO >> > Nth Penguin, LLC >> > http://www.nthpenguin.com >> > -- >> > WebWidgetry.com / MashupStudio.com >> > Future Home of the World's First Complete Web Platform >> > -- >> > Inquire: 1-920-574-2218 >> > Blog: http://www.someElement.com >> > LinkedIn Profile: http://www.linkedin.com/in/ryangahl >> > >> > > >> > >> >> >> >> -- >> ----- >> Richard Quadling >> Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 >> "Standing on the shoulders of some very clever giants!" >> >> > > > > -- > Ryan Gahl > CEO > Nth Penguin, LLC > http://www.nthpenguin.com > -- > WebWidgetry.com / MashupStudio.com > Future Home of the World's First Complete Web Platform > -- > Inquire: 1-920-574-2218 > Blog: http://www.someElement.com > LinkedIn Profile: http://www.linkedin.com/in/ryangahl > > > > -- ----- Richard Quadling Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 "Standing on the shoulders of some very clever giants!" --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Prototype & script.aculo.us" group. To post to this group, send email to prototype-scriptaculous@googlegroups.com To unsubscribe from this group, send email to prototype-scriptaculous+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~----------~----~----~----~------~----~------~--~---