Tony Tocco wrote:
I've been looking for the preferred way to send a list through a form to another DTML document.
What I'm trying to do is something like this.
<form name="jumpform" method="post" action="pg_errors"> <input type="hidden" name="f_errors:list" value="<dtml-var f_errors>"> </form>
Where f_errors contains a list of strings which may contain characters (including >'s and "'s) which destroy this form quickly. I have not been able to determine what format the value="" field should take in order for this form to send a list. Can someone clarify how this value="" field should be created so that my calling document recieves data capable of being reconstructed into a list?
NOTE: jumpform is javascript submitted by a custom header.
Regards, ttocco
Zope has an html_quote feature which properly escapes any HTML significant characters such as ">" by substituting their entity equivilants. If you use the dtml entity syntax, you get html_quoting thrown in for free, in normal dtml-var statements, you must specify it specifically. As for lists, the ":list" marshalling is used to creeate a list from multiple form fields or multi-select lists. If you want to create a list from a single text field, use ":tokens" or ":lines", which are space delimited and newline delimited respectively. Your example could look like: <form name="jumpform" method="post" action="pg_errors"> <input type="hidden" name="f_errors:tokens" value="<dtml-if f_errors><dtml-var expr="_.string.join(f_errors)" html_quote></dtml-if>"> </form> Which would make a list out of a space delimited f_errors value, and html_quote the value. -- | Casey Duncan | Kaivo, Inc. | cduncan@kaivo.com `------------------>