Re: Redoing Forms

Matthew MacDonald - FES ~ (mmacdona@pcocd2.intel.com)
Fri, 14 Apr 95 13:17:51 EDT

DAVE MORRIS WROTE:
More importantly, we need to detail what functions people want forms
to do with some explicit examples. Someone mentioned that the nested
select wouldn't be good for an automobile catalog. If the exact
function was described with a detailed example, it would start the
ball rolling on what forms would be for. The original implementation
of forms was probably based on one specific need, and all the
"discussion" has resulted in trying to over-extend the Form to fit
other needs.

No. What I said or at least I think I said was that the "current" <select>
wouldn't be good for
an auto parts catalog. A nested <select> would help. This case might be
better served by using
multiple forms "and" nested <select>s.
Yes. I am trying to over-extend the Form to fit other needs.

I thought I had given a good example but here is another one:

I am an owner of a retail car parts store. I want to sell my parts on the web.
I tell my
web programmer to create a form that my customers can use to order these parts.
I am currently a small car parts dealer and so I sell a limited number of
items.

I sell parts for Ford - engines parts - headlights - antennas
Chevy - engines parts - headlights - antennas
Honda - engines parts - antennas - hubcaps

My customers are good weekend mechanics but they don't usually know all the
different models and parts for their cars. I want my web form to "guide" them
to the correct
choice without making incorrect ones in the process.

My programmer comes back and says: "Hey look at this form using radio buttons!"

make
[] Ford [] Chevy [] Honda
part type
[] Engine [] headlight [] antenna [] hubcaps

I reply: "Hmmm. What happens if my customer picks Ford - hubcaps? I don't sell
those!
Do something else. It's just a matter of programming. "

My programmer comes back and says: " Hey look at this form!"

make Parts
[] Ford [] Engine [] headlights [] antennas
[] Chevy [] Engine [] headlights [] antennas
[] Honda [] Engine [] antennas [] hubcaps

I say: "Hmmm. This is better but while I am guided towards Ford - engine
-headlight - or antennas
I can still pick Ford - hubcaps"
My programmer says: "But they probably won't"
I say: "But someone will. I don't want the customer to have that option or
make that mistake.
Try something else. What am I paying you all this money for anyway?"

Programmer: "Look at this."

[] Ford Engine [] Honda Engine [] Chevy Engine
[] Ford antennas [] Honda antennas [] Chevy headlights
[] Ford headlights [] Honda hubcaps [] Chevy antennas

Owner: "But I have over a thousand different engine parts just for Ford. Not to
mention,
20 different model years, and makes. How can you put all
that on the form? And I also sell antennas that are just for a
particular make and
model but I also sell universal antenna replacements that cross make
boundries.
What about that?"

Programmer: "I guess I could create multiple forms and put in hidden fields for
for the previous
selections in order to keep the previous state. But that starts
to get
a little hairy. And I'm not sure how fast this would be for me
or the
customer. And if you discontinued a part it might be a pain to
update
all the forms."

Owner: "Hmmm. So it's going to be slow for my customers, it's going to take you
a long time
to write all these pages and debug them, costing me more money. Say,
how come
you just don't use those pull down/pull right menus like on my PC?"

Programmer: "You can't do that in HTML"

Owner: "What's HTML?"

Programmer: "I quit."

As far as trying to convince others in the group to implement a nested <select>
I have finished my
diatribe.

I admit I don't have the required expertise to put my idea into an "official"
spec but in general
this is what I would want:
<select>Ford
<option><select>engine
<option>rotors
<option>belts
<option>fans
</select>
<option><select>headlights
<option>highbeams
<option>lowbeams
<option>fog
</select>
<option><select>antennas
<option>radio
<option>t.v.
<option>cb
</select>
</select>

This is what it should do:
______________ ______________
| FORD <-|-- select FORD and get |engine | ...ad
infinitum
|______________| |headlights |
|antennas |
------------
I won't send any more mail about <select> unless I can write a spec.
That said, I am willing to discuss any possible changes to the forms specs.

Matt