Please keep copying the Zope list. I may not always be able to answer, and others might want to learna bout this or have insights of their own.
Martijn Pieters wrote:
Generally, IE is very precise at interpreting the HTTP standard. It is quite probable that your app has an error somewhere that Netscape glosses over.
One way to you could diagnose this, is by using a HTTP tracer like TracePlus32 Web Detective (a demo can be downloaded from http://www.sstinc.com/) which will show you exactly what Netscape and Explorer send over the wire, and what answers Zope gives. This is much easier than using a telnet session and typing in your HTTP requests manually. It should at least show you what faulty requests IE sends, and from there interpret how IE comes to the conclusion it should send those requests.
Thanks Martijn!
I didn't think I yet had enough Zope Zen to right something that a browser couldn't understand!
I'll take a look and see what I can find out. Since the code that causes the error is very short, I'm going to post it here.
==================================8<===================== <dtml-var standard_html_header>
<h1><dtml-var title_or_id></h1> <h3>Welcome to the Far West Fibers Scale System</h3>
<strong>Please select the area you would like to work in...</strong>
<form action="" method="POST"> <table border="0"> <tr> <td align="right"> <input type="submit" name="Tickets/TicketForm:method" value="Scale Entry"> </td><td valign="bottom"> <a href="Help/HelpforScaleEntry"><h6>Help for Scale Entry</h6></a> </td> </tr> <tr> <td align="right"> <input type="submit" name="Suppliers/SupplierForm:method" value="Suppliers"> </td><td valign="bottom"> <a href="Help/HelpforSuppliers"><h6>Help for Suppliers</h6></a> </td> </tr> <tr> <td align="right"> <input type="submit" name="Customers/CustomerForm:method" value="Customers"> </td><td valign="bottom"> <a href="Help/HelpforCustomers"><h6>Help for Customers</h6></a> </td> </tr> <tr> <td align="right"> <input type="submit" name="Grades/GradeForm:method" value="Grades"> </td><td valign="bottom"> <a href="Help/HelpforGrades"><h6>Help for Grades</h6></a> </td> </tr> <tr> <td align="right"> <input type="submit" name="Categories/CategoryForm:method" value="Categories"> </td><td valign="bottom"> <a href="Help/HelpforCategories"><h6>Help for Categories</h6></a> </td> </tr> </table> </form> <dtml-var standard_html_footer> ==================================>8=====================
As I look at this, I think I know what the problem is, and it is a subject I have been meaning to ask about but haven't.
I'd be willing to bet that the problem is caused because the Form's method argument is blank. I did this because I use the name="form:method" syntax for each of my buttons, and because I saw that the URL in the method field was prepended to the URL I was actually calling. This seemed to be causing some weird interactions, so I just left the method field blank and the weirdness cleared up.
What are the pros and cons of using the name="form:method" type of call versus using a method="form" call and then calling other documents based on the values of the various submit buttons?
Hmm... You use the :method modifier here. I know that a / in the method name is tolerated, but it has some influence on the setting of the BASE URL. You'll still need to use a tracer to identify how this goes wrong with Internet Explorer. It could be that the slash is wrongly escaped, or the set base is in error. As you have not included the traceback, I cannot diagnose this properly. The :method modifier is especially handy in forms whose contents may have to be sent to different methods of an object. You only have to specify the objects URL in the action attribute of the form tag, and give the submit buttons appropriate names, and Zope makes sure that the contents of that one form will go to the appropriate method. In your case, it would be better and more readable if you made all the different buttons into individual form objects, each with their own action attribute. You are not trying to send the contents of one form to different Zope object methods depending on what action the user performed. You HTML would look something like this: <td align="right"> <form method="POST" action="Tickets/TicketForm"> <input type="submit" value="Scale Entry"></form> </td><td valign="bottom"> -- Martijn Pieters, Software Engineer | Digital Creations http://www.digicool.com | Creators of Zope http://www.zope.org | mailto:mj@digicool.com ICQ: 4532236 | PGP: http://wwwkeys.nl.pgp.net:11371/pks/lookup?op=get&search=0xA8A32149 -------------------------------------------
Martijn Pieters wrote:
Please keep copying the Zope list. I may not always be able to answer, and others might want to learna bout this or have insights of their own.
Sorry, I must have replied to the personal copy of your message, not the list copy!
In your case, it would be better and more readable if you made all the different buttons into individual form objects, each with their own action attribute. You are not trying to send the contents of one form to different Zope object methods depending on what action the user performed.
You HTML would look something like this:
<td align="right"> <form method="POST" action="Tickets/TicketForm"> <input type="submit" value="Scale Entry"></form> </td><td valign="bottom">
This is good information to have thank you. But in instances like a DB query form where you might use the same form to perform a search, or a record update or add a new record, it is acceptable form to use the :method method? -- Stand Fast, tjg. Chief Technology Officer tjg@exceptionalminds.com Red Hat Certified Engineer www.exceptionalminds.com Avalon Technology Group, Inc. (503) 246-3630
>>>>>>EXCEPTIONAL MINDS, INNOVATIVE PRODUCTS<<<<<<<<<<<<
participants (2)
-
Martijn Pieters -
Timothy Grant