[Seaside] Named PTAjax calls
Aaron Rosenzweig
aaron at cocoanutstech.com
Thu Dec 19 00:55:36 UTC 2013
Aha!
Thanks Johan and Bob. Very nice advice, that’s what I was looking for :-)
So this works for a “link” but what about a form? How do you specify which form to submit in the process and have all the form fields synchronize their variables?
Thank you,
AARON ROSENZWEIG / Chat 'n Bike
e: aaron at chatnbike.com t: (301) 956-2319
On Dec 18, 2013, at 7:34 PM, Bob Arning <arning315 at comcast.net> wrote:
> Hehe, one reason I answered was to nudge someone to post the right answer. I looked at some of the function stuff, but didn't see how to give it a name. Thanks.
>
> Cheers,
> Bob
>
>
> On 12/18/13 7:07 PM, Johan Brichau wrote:
>> The Javascript wrappers in Seaside (JSObject subclasses) provide a number of convenience methods to achieve this.
>> For example:
>>
>> html script: ((html jQuery ajax callback:[ ]) asFunction assignTo: 'myfunction').
>>
>> Then just call myfunction() from your javascripts.
>>
>> cheers
>> Johan
>>
>> On 19 Dec 2013, at 00:25, Bob Arning <arning315 at comcast.net> wrote:
>>
>>> On 12/18/13 6:09 PM, Aaron Rosenzweig wrote:
>>>> Hi Bob,
>>>>
>>>> Ahh ok. It took me a while to wrap my head around it but that’s clever.
>>>>
>>>> Basically you declared the “action” variable and then assigned it an Ajax object.
>>> Right - that assignment predated your request. I did that so I could use the same code for both the onClick: and the onEnter:. It used to read "onClick: action" and "onEnter: action". Similar to what you were wanting to do - use the same callback in a number of places.
>>>> Though I don’t understand the underscores in the syntax.
>>> old-school assignment (equivalent to colon-equal)
>>>> Then, in the end, you make a javascript function and pass in the “action” variable’s guts but giving it the “greaseString” message.
>>>>
>>>> Thank you Bob - you were the only one to respond. I appreciate it! :-)
>>>> AARON ROSENZWEIG / Chat 'n Bike
>>>> e: aaron at chatnbike.com t: (301) 956-2319
>>>>
>>>> On Dec 17, 2013, at 6:24 AM, Bob Arning <arning315 at comcast.net> wrote:
>>>>
>>>>> I certainly won't say this is the right way, but it seems to work:
>>>>>
>>>>> renderGlobalSearchOn: html
>>>>>
>>>>> | inputId action |
>>>>>
>>>>> inputId _ html nextId.
>>>>> action _ html jQuery ajax
>>>>> callback: [ :v2 |
>>>>> filterString _ v2.
>>>>> selections _ Dictionary new.
>>>>> visibleChunks _ #().
>>>>> ]
>>>>> value: (html jQuery id: inputId) value;
>>>>>
>>>>> script: self scriptForGlobalSearch.
>>>>>
>>>>> html script: 'function foobar27(){',action greaseString,'}'.
>>>>>
>>>>> html div: [
>>>>> html button
>>>>> value: 'Search:';
>>>>> onClick: 'foobar27()';
>>>>> yourself.
>>>>> html textInput
>>>>> id: inputId;
>>>>> value: filterString;
>>>>> onEnter: 'foobar27()'.
>>>>> ].
>>>>>
>>>>>
>>>>> Cheers,
>>>>> Bob
>>>>>
>>>>> On 12/16/13 8:25 PM, Aaron Rosenzweig wrote:
>>>>>> Oh c’mon, no takers?
>>>>>>
>>>>>> Nobody has faced this before?
>>>>>>
>>>>>> I can’t believe something so easy in WebObjects is so hard in Seaside. (Ok, that was below the belt).
>>>>>>
>>>>>> In WO, all I have to do is drop an “AjaxWOSubmitButton” component on the page and then bind the “functionName” binding. I can immediately call that name in Javascript from the client side and anything in the “action” binding is performed and all the form bindings are synchronized.
>>>>>>
>>>>>> Thanks,
>>>>>> AARON ROSENZWEIG / Chat 'n Bike
>>>>>> e: aaron at chatnbike.com t: (301) 956-2319
>>>>>>
>>>>>> On Dec 15, 2013, at 9:50 AM, Aaron Rosenzweig <aaron at cocoanutstech.com> wrote:
>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> Is there a way to “name” a PTAjax callback so that it can be conveniently invoked from javascript?
>>>>>>>
>>>>>>> Situation:
>>>>>>> Want to effectively have a submit button (or hyperlink) on the page with an on click Updater callback… then from something programmatically on the page… *click* that link.
>>>>>>>
>>>>>>> Problems:
>>>>>>> 1) Having a hidden button or link to click is not elegant (I feel dirty)
>>>>>>>
>>>>>>> 2) It doesn’t always work. For various reasons, doing a domElement.click() is not the same as a human hand doing a click because it doesn’t generate a full mouse click event.
>>>>>>>
>>>>>>> Thought:
>>>>>>> There must be a way to setup the following:
>>>>>>> A) Create a PTAjax object with a name that is a global javascript variable on the client side (web browser)
>>>>>>>
>>>>>>> B) You would provide the “javascript function name” a “seaside callback” a “HTML form ID or form name” so that synchronization of form variables can take place and finally an “update container ID”
>>>>>>>
>>>>>>> C) You could just invoke it from your javascript code and know that it will safely update the server.
>>>>>>>
>>>>>>> Does this make sense?
>>>>>>> AARON ROSENZWEIG / Chat 'n Bike
>>>>>>> e: aaron at chatnbike.com t: (301) 956-2319
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> seaside mailing list
>>>>>>
>>>>>> seaside at lists.squeakfoundation.org
>>>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>>> _______________________________________________
>>>>> seaside mailing list
>>>>> seaside at lists.squeakfoundation.org
>>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>> _______________________________________________
>>> seaside mailing list
>>> seaside at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20131218/29e5bcbb/attachment-0001.htm
More information about the seaside
mailing list