[Seaside] Re: Seaside Async and form submission
Ryan Simmons
ryan.craig.simmons at gmail.com
Thu Feb 19 08:22:20 UTC 2009
Had a quick look at Seaside Async, can't see that it supports
submitting a whole form.
If you need to use Seaside Async, you could use liveCallbacks on all
the selects but link them up to a momento then commit the momento back
to your model when the user clicks on the anchor
2009/2/19 Ryan Simmons <ryan.craig.simmons at gmail.com>:
> Hi Carl you can do this with Scriptaculous as follows
> just change the anchor to
>
> anchor
> onClick: (html updater
> triggerForm: 'testForm';
> id: '' " You need a id fro the html element Id
> that you are updating with the render "
> callback: [:r |
> self counter: counter + 1.
> self renderOnHtml: r]);
> with: 'test'.
>
> This is from 2.8 though, never worked on 2.6 :)
>
> Ryan
>
> 2009/2/18 Carl Gundel <carlg at libertybasic.com>:
>> I tried this with Seaside 2.8 with the same results. :-/ I also noticed
>> that my renderOnHtml: method was rendering the form again, so I put the form
>> code in the renderContentOn: method. No difference.
>>
>> Okay, I can see that this can be made to work (sort of) by assigning the
>> liveCallback to the selectTag, but this just doesn't meet my needs. Isn't
>> there some way to force a form's contents to be submitted when an anchor has
>> a liveCallback? Shouldn't an Ajax action be able to use all the contents of
>> a form?
>>
>> -Carl
>>
>> On Feb 18, 2009, at 2:42 PM, Carl Gundel wrote:
>>
>>>
>>> On Feb 18, 2009, at 12:59 PM, Carl Gundel wrote:
>>>
>>>> I'm using Async with my Run BASIC project. I am still using Seaside 2.6,
>>>> but I plan to migrate forward as soon as I can get my Ajax stuff working
>>>> okay. have a dynamically generated form with a couple of listboxes and an
>>>> anchor. When the link is clicked I am expecting the values to get scraped
>>>> from the controls and assigned to my model, but it doesn't seem to be
>>>> happening. The form is getting built and rendered correctly as far as I can
>>>> tell.
>>>
>>> Okay, here is a complete tiny class that seems to exhibit the same
>>> behavior. The counter increments when the anchor is clicked, but the value
>>> of selection is always nil.
>>>
>>> Any ideas?
>>>
>>> -Carl
>>>
>>> Smalltalk defineClass: #AsyncTest
>>> superclass: #{Seaside.WAComponent}
>>> indexedType: #none
>>> private: false
>>> instanceVariableNames: 'list selection counter '
>>> classInstanceVariableNames: ''
>>> imports: ''
>>> category: 'Run BASIC'!
>>>
>>> !AsyncTest class methodsFor: 'as yet unclassified'!
>>>
>>> canBeRoot
>>> ^ true!
>>>
>>> initialize
>>> self registerAsApplication: 'asyncTest'.! !
>>>
>>> !AsyncTest methodsFor: 'rendering'!
>>>
>>> renderContentOn: html
>>> self renderOnHtml: html!
>>>
>>> rendererClass
>>> ^Seaside.WARenderCanvas!
>>>
>>> renderOnHtml: html
>>> | select anchor |
>>> html
>>> text: 'Async test';
>>> break.
>>> (html form)
>>> id: 'testForm';
>>> with:
>>> [html
>>> text: 'Counter = ' , self counter
>>> asString;
>>> break.
>>> (html div)
>>> id: 'section';
>>> with:
>>> [select := html
>>> select.
>>> select list: self
>>> list.
>>> select on:
>>> #selection of: self.
>>> anchor := html
>>> anchor.
>>> anchor
>>>
>>> liveCallback:
>>>
>>> [:h |
>>>
>>> self counter: counter + 1.
>>>
>>> self renderOnHtml: h];
>>>
>>> submitFormNamed: 'testForm';
>>> text:
>>> 'test'.
>>> html break.
>>> html text: self
>>> selection]]! !
>>>
>>> !AsyncTest methodsFor: 'accessing'!
>>>
>>> counter
>>> counter isNil ifTrue: [ counter := 0 ].
>>> ^counter!
>>>
>>> counter: anObject
>>> counter := anObject!
>>>
>>> list
>>> list isNil ifTrue: [ list := OrderedCollection with: '1' with:
>>> 'one' with: 'won' with: 'Juan' ].
>>> ^list!
>>>
>>> list: anObject
>>> list := anObject!
>>>
>>> selection
>>> ^selection!
>>>
>>> selection: anObject
>>> selection := anObject! !
>>>
>>> #{AsyncTest} initialize!
>>>
>>
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>
More information about the seaside
mailing list