Hi All, Occasionally I need to do a little web programming and I must admit after almost 2 decades I still find myself searching for a better way to handle HTML forms. I blame this mostly on the W3C's invalid assumption that HTML is for rendering documents and not building applications. But putting blame aside, I would like to ask the list to share their best form processing techniques.
There's a particular scenario that bugs me about forms which is that it is increasingly rare that you have a bunch of fields with just a submit button. There are usually multiple possible operations that build up and modify the data before it's submitted. A good example of this is a shopping cart where there is one form but commands for removing and item, updating quantities, applying a discount code and submitting the cart. But the form only has one action. Currently I've been just using hidden fields and then call a javascript function to fill in the hidden fields with the desired data for the particular command and submit the form. For example: ... <head> <script type="text/javascript"> function cart_remove(itemid) { document.cartform.cmd.value = 'remove'; document.cartform.itemid.value = itemid; document.cartform.submit(); } function cart_update_quantities() { document.cartform.cmd.value = 'update'; document.cartform.submit(); } ... </script> </head> <form name="cartform" action=/purchase" method="post"> <input name="tok" type="hidden" value="0eb3397aa9a4055a"/> <input name="cmd" type="hidden" value="next"/> <input name="itemid" type="hidden" value=""/> ... <input name="quantity_3756" type="text" value="1"/> <a href="javascript:cart_remove(3756)">Remove</a> ... <a href="javascript:cart_update_quantities()">Update Qty.</a> ... </form> So how would you do this sort of thing? My current technique seems a little hackish because I'm using the hidden form element "cmd" to modify the action. In practice it might seem purer to modify the action to call /purchase/remove or /purchase/update for use with modern routing on the server. Can you point me to a site that you think illustrates good form processing technique? Note that I'm not really interested in frameworks and third party components. This cart example is just one example. I'm really trying to arrive at a proper form processing technique in general. So I'm not really interested in "Just use Acme Cart 2000" sorts of answers. Ideas? Mike -- Michael B Allen http://www.ioplex.com/ _______________________________________________ New York PHP User Group Community Talk Mailing List http://lists.nyphp.org/mailman/listinfo/talk http://www.nyphp.org/show-participation