[Seaside] Noob jQuery AJAX question

Tony Fleig tony.fleig at gmail.com
Sun Nov 14 19:14:13 UTC 2010


I'm new enough to this that it seems like magic to me...

In the following onChange event, Seaside somehow arranges that the callback
block is executed with the serialized parameter before the AJAX script
object is executed, which is of course exactly what I want.

Is there a set of rules that are used to determine in what order these
things occur? Is this documented somewhere?

renderContentOn: html
| val |

html div id: 'txt'; with: ''.
html break.
html select
list: { 1. 2. 3. };
selected: 2;
 "Pass the selection back to the server and save it."
onChange: (
(html jQuery ajax)
script: [ :s | s << (s jQuery: '#txt') text: (val - 1)];
serializeThis);
callback: [ :v | val := v]


Rendering HTML with something like

    html div id: (html nextId); class: 'myclass'; with: 'mycontent'.

seems fairly straightforward, but the JQuery Ajax stuff doesn't seem nearly
as clear.

Is there a description somewhere as to how this magic is accomplished? I'm
somewhat overwhelmed perusing the code at the moment.

Thanks again.
TF




On Sun, Nov 14, 2010 at 10:18 AM, Tony Fleig <tony.fleig at gmail.com> wrote:

> Wow. So simple when you know what you're doing.
>
> It didn't occur to me that I could keep sending messages to the same JQAjax
> object.
>
> Thanks.
> TF
>
> On Sun, Nov 14, 2010 at 10:03 AM, Nick Ager <nick.ager at gmail.com> wrote:
>
>> Hi
>>
>> I want to, using AJAX, when the user selects a value from a list, pass
>>> that value to the server for processing and in response change the value of
>>> an item on the screen based on some server-side processing.
>>>
>>> I expected to be able to do this in a single transaction with the server,
>>> but I have been unable to find a way to do so.
>>>
>>> anAjax>>#serializeThis allows me to pass the selected value to the
>>> server, and anAjax>>#script: allows me to change the screen component value.
>>> I can't figure out how to combine this into a single server request. I don't
>>> seem to have access to an Ajax canvas object in the callback when I use
>>> serializeThis.
>>>
>>
>> you could try something like this:
>>
>> | val | html div id: 'txt'; with: ''. html break. html select list: { 1.
>> 2. 3. }; selected: 2; "Pass the selection back to the server and save it."
>> onChange: ((html jQuery ajax script: [ :s | s << (s jQuery: '#txt') text:
>> (val - 1) ]) serializeThis); callback: [ :v | val := v ]
>>
>>
>> Nick
>>
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>>
> 'myc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20101114/27305fa4/attachment-0001.htm


More information about the seaside mailing list