The subject of your message seems to be a clear description of a particular kind of example, which I will claim is already present in one of the main demos:
    http://www.impredicative.com/ur/demo/react.html

I think you've already found this one and the more complicated 'increment' demo. Maybe your question, then, has to do with the further complication that you introduce below.

On 08/13/2015 11:38 PM, Stefan Scott Alexander wrote:
(3) Initial coding attempt:

I thought I could just make some minor modifications, to change the <cselect> in (1) to a <textbox>, as follows:

fun main () =
    s <- source "";
    return <xml><body>
      <textbox source={s} onchange={v <- get s; alert ("Now it's " ^ v)}>
</textbox>

      Hello, I'm <dyn signal={s <- signal s; return <xml>{[s]}</xml>}/>.
</body></xml>

However, this is giving lots of compile errors.

The problem here is just that you need <ctextbox> instead of <textbox>. The 'c' is for "client-side scripting."

(4) Ultimately, what I want to develop is:

(a) a <textbox> on the client, called `txbx`, which the user can change by typing

(b) a table `t` on the server, which will be "live-queryable" using the <textbox>:

(c) when user types something different in the <textbox>, there is an <xml> fragment below the <textbox> which instantly changes:

eg - the <xml> fragment might be something like this:

  return queryX1 (SELECT Nam FROM t WHERE Nam LIKE '*' ^ {[txbx]} '*')
                 (fn r => <xml>{[r.Nam]}<br/></xml>);

I can't even get the simpler case (3) above to work. After I get (3) to work, then I can try (4).

It's only possible to implement server-side interaction through RPCs. You probably want an event handler that blocks on an RPC result and then updates client-side sources appropriately when the results come in.
_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur

Reply via email to