提前感谢您的帮助!
我有一个庞大而复杂的形式,有几个多对多的关系,我正在努力应对。经过大量的鼓励后,我为每个关系创建了两个合适的表格(例如,一个表 cars 填充了carID和carName,以及一个交叉表 userCars 无论大小如何,都存储userID和carID)。
我的问题是:我的表单HTML总是由PHP基于这些表生成吗?例如,我应该让PHP检查 cars 表并为表中的每一行生成一个复选框,即使我只是从五开始?除了调用PHP函数onLoad并让该函数调用javaScript函数之外,还有更好的方法吗?
此外,在用户提交表单后,如何存储这些值?我是否需要浏览每个POST变量名称并将它们与表 cars 中的每个carName进行比较,以获取与该名称关联的carID,然后在 userCars <中创建一个条目/ em>表?或者我应该说“如果Volvo,carID = 4”,因为我现在只有五辆车!
再次感谢您的所有建议!没有你的慷慨,我会被困几次!
答案 0 :(得分:1)
我同意Marek的看法,一旦php应用程序变得有点复杂,你最好使用框架。优选地,像yii一样提供多对多ORM。
那说许多程序员早期犯的错误之一就是使形式过于复杂。
要问自己一个好问题是这种形式是否试图做太多。如果没有看到与实际表格的链接,就很难做出判断。
解决这类问题的一种方法是使用javascript(jquery:ajax)在用户选择汽车时更新连接表,这样当您提交表单时,您只更新主表的值。
所以表单可能看起来像
您的姓名 _ _
你的年龄 _ _
你最喜欢的颜色__
你拥有的汽车
沃尔沃_福特_菲亚特_梅赛德斯_ {...这些值可以从选项表中动态创建...} {使用jquery选中/取消选中每个值发送ajax帖子来更新你的user_cars表}
提交表单时,只更新用户表
但是你也可以循环遍历$ _POST ['cars'] []的值来更新user_cars表。这可能是更好的解决方案。
答案 1 :(得分:0)
您应该使用数据库值生成HTML,或者应该创建一些从数据库中获取值的Javascript,并根据这些值设置页面中的值。其次,如果将表单元素的ID设置为数据库中相关条目的ID,那么您应该能够从POST中包含的ID集更新数据库。