Sinatra for Interactive Forms? HTML5/JQuery

Good Evening,

I am an experienced programmer, but new to web programming. We have
a number of interactive forms which, as I understand, will require
HTML5 or JQuery.

A good demonstration of what we need to do is to be found here:
http://remysharp.com/wp-content/uploads/2007/09/select-chain.php

I am investigating using Sinatra, as it seems very concise to move our
GUI App. to being on-line.

As I study Sinatra it is very clear how and where to write blocks of
code that service various "requests" from the form.

What is not clear to me is how this "request" (modified URL - right?)
is "set" on the client side in a situation where the user has
selected, for example, an item in one list and the form needs the
information to fill out another list.

But more fundamental than not understanding how to do this it has not
become clear what tools to use most consistent with Ruby, with minimal
complexity (please don't make me use Java again;;;), and with minimal
maintenance into the future.

Note, we feel we can reasonably require our limited client base to
use the latest HTML5 browsers if they will do what we need such as the
above example.

Perhaps there are plug-ins coming to do this with Sinatra?

Or perhaps there is a "Form Generator" for HTML5 that we can use
(mostly) directly?

Thanks for any thoughts/recommendations on this!

George

I am an experienced programmer, but new to web programming. We have
a number of interactive forms which, as I understand, will require
HTML5 or JQuery.

Probably not true, but...

A good demonstration of what we need to do is to be found here:
http://remysharp.com/wp-content/uploads/2007/09/select-chain.php

The example is basic AJAX; if you're not yet familiar with Javascript,
now's the time to learn. And yes, you can use a library like JQuery to
make it a bit easier, though there are certainly others available.

HTH,

···

On Thu, Dec 9, 2010 at 1:10 AM, thunk <gmkoller@gmail.com> wrote:
--
Hassan Schroeder ------------------------ hassan.schroeder@gmail.com
twitter: @hassan

Good Evening,

I am an experienced programmer, but new to web programming. We have
a number of interactive forms which, as I understand, will require
HTML5 or JQuery.

A good demonstration of what we need to do is to be found here:
http://remysharp.com/wp-content/uploads/2007/09/select-chain.php

Point of interest, the page you linked is using XHTML (strict) and AJAX (yes with JQuery). This would also work fine with HTML 4. (Nothing wrong with using HTML 5 but you will get wider browser compatibility with HTML 4).

I am investigating using Sinatra, as it seems very concise to move our
GUI App. to being on-line.

As I study Sinatra it is very clear how and where to write blocks of
code that service various "requests" from the form.

What is not clear to me is how this "request" (modified URL - right?)
is "set" on the client side in a situation where the user has
selected, for example, an item in one list and the form needs the
information to fill out another list.

I'm not sure what you mean by this. The usual way to send data from the client to the server is via a POST via a form or a AJAX call (you can also do a GET with encoded parameters, but there are some gotchas with that approach). The data will then be available server-side in the params hash.

I highly recommend reading the Sinatra book (http://sinatra-book.gittr.com/\). I does an excellent job of explaining how Sinatra does it's work. http://sinatra-book.gittr.com/#http_methods contains the POST I was talking about. You will also no doubt have to learn HTML for this project.

But more fundamental than not understanding how to do this it has not
become clear what tools to use most consistent with Ruby, with minimal
complexity (please don't make me use Java again;;;), and with minimal
maintenance into the future.

Sinatra is an excellent starting point. Without knowing more about what you are trying to do, I can't recommend any other tools at the moment.

Perhaps there are plug-ins coming to do this with Sinatra?

Or perhaps there is a "Form Generator" for HTML5 that we can use
(mostly) directly?

I've never used it, but the framework Padrino is based on Sinatra and including HTML generators. Rails also focuses on code generation. For both of these though, the generated code only gives you a starting point, you will no doubt have to do a fair amount of customizing.

···

On 12/9/2010 2:10 AM, thunk wrote:

Thanks for any thoughts/recommendations on this!

George

Hassan Schroeder wrote in post #967441:

you can use a library like JQuery to
make it a bit easier, though there are certainly others available.

Aren't Ruby programmers supposed to use Prototype or CoffeeScript?

···

--
Posted via http://www.ruby-forum.com/\.

Thank you all very much for all the thoughtful input and links!

The problem is becoming clearer to me. Also I am learning from my
restructuring of our Tk based GUI into something much more like the
architecture used by between HTML and the web-frameworks. (( I have
come up with a scheme where every Tk "Wrapper" Class (Entry Fields,
List Boxes, Labels, Combo Boxes, Radio Buttons all covered now) has a
"Server Side Proxy" class.

My goal is to keep this project as close to 100% Ruby as possible!

Also, my particular application might be of some interest here. It
is, at the core, about getting really Quality data into a format the
computer can use from Natural language. I explain to lay folks that
"we all know GIGO - Well, I'm working on what I think "Quality In"
should look like, and what can be done with it". I have "captured"
1000s of sentences into what I call "Satz" which are Hashes that
follow certain rules. Following is an example I just concocted
tonight to explain some of this to somebody:

The English Sentence

"I understand that the population of Sturgeon Bay, Wi is about 10,000
people" might be rendered so:

{
   :QUALIFICATION=>:SELF_UNDERSTANDS,
   :POPULATION_CENTER_TYPE=>:CITY,
   :POPULATION_CENTER_NAME=>"Sturgeon Bay",
   :POPULATION_CENTER_STATE_NAME=>:WISCONSIN,
   :POPULATION_CENTER_COUNTRY_NAME=>:USA,
   :POPULATION_NUMBER=>10000,
   :ACCURACY_INDICATION=>:ABOUT
}

"POPULATION" is the column farthest left, and so on.... so somebody
"translating" from natural language can simply use the "vocabulary" of
all the previous keywords used for working with the same topic. Put
simply, you would see only :QUALIFICATION, :POPULATION, and :ACCURACY
in the first column. If the translator should hit :POPULATION in the
Listbox, the next listBox will display (at least): CENTER_TYPE,
CENTER_STATE_NAME, CENTER_COUNTRY_NAME, and :NUMBER. (I played with
more levels but two seems to be a 'sweet spot' for people, and the 2nd
column seldom gets over 30 choices anyway.)

Thanks again!

George

···

From my link given in the first posting, perhaps it can be seen that

I think you're "supposed" to use whatever works for your app and
matches your personal preferences/prejudices :slight_smile:

The OP may want to google "Javascript libraries" to get an idea of the
many alternatives to JQuery.

···

On Thu, Dec 9, 2010 at 7:59 AM, Mike Stephens <rubfor@recitel.net> wrote:

Aren't Ruby programmers supposed to use Prototype or CoffeeScript?

--
Hassan Schroeder ------------------------ hassan.schroeder@gmail.com
twitter: @hassan