php - 如何使用 PHP、JS 和 HTML 正确处理多对多关系?

标签 php javascript mysql forms

预先感谢您的帮助!

我有一个庞大而复杂的表单,其中包含几个我正在努力处理的多对多关系。在很多鼓励之后,我为每个关系创建了两个适当的表(例如,一个表 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/

相关文章:

javascript - 谷歌地图 : get route, 公里,和...价格

php - Facebook PHP SDK - 将用户数据存储到 MYSql 数据库中

php - MYSQL 出现这个错误

php - 如何按工作时间选择来电、接听、优惠、费率等?

PHP如何从多维数组中获取值?

Javascript死代码消除

javascript - 如何远程填写并提交表格?

php - 使用 smarty 编译 product.tpl 时出错

php - Laravel 多态关系问题与 Camel Case

mysql - 我想将 mysql blob 导出到目录中的文件中,除了 select into dumpfile 之外还有更好的方法吗?