预先感谢您的帮助!
我有一个庞大而复杂的表单,其中包含几个我正在努力处理的多对多关系。在很多鼓励之后,我为每个关系创建了两个适当的表(例如,一个表 cars 填充了 carID 和 carName ,以及一个相交表 userCars存储 userID 和 carID),无论大小。
我的问题是:我的表单 HTML 是否应该始终由 PHP 基于这些表生成?例如,我是否应该让 PHP 检查 cars 表并为表中的每一行生成一个复选框,即使我只从五个开始?除了调用 PHP 函数 onLoad 并让该函数调用 javaScript 函数之外,还有更好的方法吗?
此外,在用户提交表单后,我如何存储这些值?我是否需要遍历每个 POST 变量名称并将它们与表 cars 中的每个 carName 进行比较以获得与该名称关联的 carID,然后在 userCars 表?或者我应该只说“if Volvo, carID = 4”因为我现在只有五辆车!
再次感谢您的所有建议!没有你的慷慨,我会被完全困住好几次!
最佳答案
我同意 Marek 的观点,一旦 php 应用程序变得有点复杂,您最好使用框架。最好是像 yii 这样的提供多对多 ORM 的工具。
也就是说,许多编码人员早期犯的错误之一就是将表单制作得太复杂。
问自己一个很好的问题是此表单是否试图做太多事情。如果没有看到实际表格的链接,很难做出判断。
解决此类问题的一种方法是使用 javascript (jquery:ajax) 在用户选择汽车时更新连接表,以便在您提交表单时仅更新主表的值。
所以表单可能看起来像
你的名字__
你的年龄__
你最喜欢的颜色__
你拥有的汽车
沃尔沃 _ 福特 _ 菲亚特 _ 梅赛德斯 _ {...这些值可以从选项表中动态创建...} {使用 jquery 选择/取消选择每个值发送一个 ajax 帖子来更新您的 user_cars 表}
提交表单时只更新用户表
但是,您也可以循环遍历 $_POST['cars'][] 的值来更新此处的 user_cars 表。这可能是更好的解决方案。
关于php - 如何使用 PHP、JS 和 HTML 正确处理多对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6617926/