我试图在现有的网站上工作,但我发现了一个错误,但我不确定它为什么是一个错误或者如何解决它。仅当HTML复选框元素被检查时才提交?
该网站基本上列出了在一个城市出租的一些商业物业。有一个类从数据库中获取列表并从中创建一个对象。在每个对象中都有一个与该属性相关联的图像数组。
当用户编辑列表时,他们会得到一个编辑页面,其中包含图像列表以及旁边的“删除”复选框。复选框都具有相同的名称,以便将它们提交回服务器时,应用程序获取要删除的图像数组。
应该发生什么,是应用程序具有开/关值的数组(其中on = delete),并且数组中每个值的索引都对应于列表对象中图像的索引 - 当其中一个值为“on”时,图像阵列中与该“on”值对应的文件名将从文件系统中删除,并且该图像将从数据库中删除。
但是,当表单被提交时,应用程序只获取一个只有选中复选框的0索引数组。所以,如果我要删除设定了三个任意图像,应用程序会得到
Array { [0] => "on", [1] => "on", [2] => "on" }
这显然是行不通的,在上市第3个图像将无论哪个复选框被设置删除。
我该如何解决这个问题?我想避免命名每个复选框(delete_1
,delete_2
,delete_3
等),因为系统已经构建为与所有具有相同名称的复选框一起工作。有没有办法可以强制所有复选框以“开”或“关”提交?
真棒,不知道你能做什么那。非常感谢(在允许的情况下会接受) – 2010-11-18 03:20:08
omg,这是一个可怕的解决方案,绝对不是问题的答案。 – zerkms 2010-11-18 03:22:09
@Steve我想避免以不同的方式命名它们,因为这将不得不改变后端的行为。我没有意识到你可以提交除“开”或“关”以外的值 - 这将需要最小的更改 – 2010-11-18 03:22:29