Python CGI购物车不能发布或打印多个值?

2024-03-29 14:42:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力探索为什么我的cgipython脚本只打印从订单中获得的一个值。我有一张表格订单.html带有以下开头标记-

<form name="cInformation" method="post" action="http://csusap.csu.edu.au/cgi-pub/bbuckl05/order.cgi" onsubmit="return validate()">

我不会发布它的内容,因为它非常广泛,但是我可以保证它的所有输入字段都有我在.cgi脚本中使用的一致名称。我的.cgi脚本获取值的列表-

^{pr2}$

之后,它试图发布它们-

# Prints the customer's order information
print "<h4><p>Order Information:\n</h4>"
print "Quantity of bolts ordered: %s (%s)" % (bolt_quantity, bolt_cost)
print "<br/>Quantity of nuts ordered: %s (%s)" % (nut_quantity, nut_cost)
print "<br/>Quantity of washers ordered: %s (%s)" % (washer_quantity, washer_cost)
print "<br/><br/>Total Cost: %s" % (total_cost)

这些只是我代码的一部分,如果需要,我可以提供整个脚本。问题是,它只会正确地打印订购的螺栓数量,而没有其他信息,如下面的屏幕截图所示-

我希望我已经提供了足够的信息。有人能帮我找到并解决这个问题吗?在

谢谢你


Tags: of订单br脚本orderh4quantitycgi
2条回答

我想出来了,这太简单了,我觉得自己很蠢。form.getvalue从标记的名称而不是id获取值。我为所有表单数据分配了id,而不是名称。在

您上传到2shared的HTML中有多个表单(我相信每个输入都有一个表单)。HTML中不能有嵌套表单。最有可能发生的是,当你认为你在提交你的外部表单时,你实际上提交的是内部表单,其中定义的唯一输入是“qbolts”。您可能只需要删除所有的form标记,最外层的标记除外,这样就可以了。在

有关详细信息,请参见this question。在

PS:如果您对使用cgi一成不变,那么您应该真正使用form.getfirst。在

编辑:在表单中使用qwash,而在脚本中使用qwasher。也不要将total___定义为表单中的输入。您可以对这些家伙使用type=hidden,并确保同时更新输入和span中的值。或者更好的方法是用python而不是javascript来计算总数。在

相关问题 更多 >