On Sun, Jan 11, 2009 at 5:19 PM, Charles F. Munat <[email protected]> wrote:
>
> Essentially, the problem I am having, I think, is that SetHtml hard
> codes the HTML that will replace the current HTML.
SetHtml does what you want:
<span id="foo">Nothing here, yet</span>
{
ajexButton("Press me", () => SetHtml("foo", Text("The current time is:
"+(new java.util.Date)))
}
Each time you press the button, the time will update.
Thanks,
David
> I need to use the
> HTML returned from the AJAX call to replace the current HTML.
>
> So I don't think SetHtml is going to work.
>
> Does this make more sense? Am I on the right track?
>
> Chas.
>
> Charles F. Munat wrote:
> > Yeah, I found this and have been playing with it, but am sort of stuck.
> > What I'm doing looks something like this (but is much more complicated):
> >
> > def getForm: NodeSeq = {
> > val widgets = [List(id,name) of unused widgets]
> >
> > if (widgets.isEmpty)
> > <span>All widgets are in use.</span>
> > else
> > SHtml.ajaxForm(
> > <input type="submit" value="+" class="addButton"/>
> > {SHtml.select(
> > widgets,
> > Empty,
> > (id: String) => {
> > val w = Model.getReference[Widget](classOf[Widget], id.toLong)
> > val t = Model.getReference[Thing](classOf[Thing], thing.id)
> > t.widgets.add(w)
> > Model.merge(t)
> > Model.flush()
> > SetHtml("widgetForm", getForm)
> > }
> > }, ("id", "optionSelector")
> > )
> > }
> >
> > def view(xhtml: NodeSeq): NodeSeq = {
> > bind("widgets", xhtml, "addForm" -> getForm)
> > }
> >
> > Then I want to insert it here:
> >
> > <lift:ThingOps.view>
> > <div id="widgetForm"><widgets:addForm/></div>
> > </lift:ThingOps.view>
> >
> > If I replace "getForm" in SetHtml above with <span>Rats!</span>, then it
> > works perfectly and when I click the + button the entire form is
> > replaced by "Rats!" But I need it to regenerate the form with either one
> > fewer widgets in the select *or* the entire form replaced by an "All
> > widgets are in use" message. But calling getForm from within getForm
> > doesn't work... I get the current form, not the form *after* the widget
> > has been added.
> >
> > I say the real one is more complicated because it also lists the widgets
> > with "-" buttons next to them which permits them to be removed from the
> > set. Each of these actions also requires the XHTML to be recalculated
> > and redisplayed.
> >
> > Does this make any sense?
> >
> > Chas.
> >
> > David Pollak wrote:
> >> SetHtml(id: String, stuff: NodeSeq)
> >>
> >> It's a JsCmd and it replaces the contents of the Elem with the give id
> >> on the page with stuff.
> >>
> >> Is this what you were looking for?
> >>
> >> On Sun, Jan 11, 2009 at 2:58 PM, Charles F. Munat <[email protected]
> >> <mailto:[email protected]>> wrote:
> >>
> >>
> >> Is there a JsCmd for replacing a NodeSeq? I want an AJAX button to
> run
> >> some code on the server, generate a NodeSeq, and then replace the
> >> similar NodeSeq on the page. I'm looking through the commands and I
> >> don't see how to do that, except to use Run and then JQuery...
> >>
> >> Am I missing something? This seems like a common scenario, so I'm
> >> thinking it's probably in there.
> >>
> >> Thanks,
> >> Chas.
> >>
> >>
> >>
> >>
> >>
> >> --
> >> Lift, the simply functional web framework http://liftweb.net
> >> Collaborative Task Management http://much4.us
> >> Follow me: http://twitter.com/dpp
> >> Git some: http://github.com/dpp
> >>
> >
> > >
>
> >
>
--
Lift, the simply functional web framework http://liftweb.net
Collaborative Task Management http://much4.us
Follow me: http://twitter.com/dpp
Git some: http://github.com/dpp
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Lift" 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/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---