2012-03-26 99 views
0

我到底该怎么做这项工作?复杂的复选框形式

我有3个表的数据库。

表1:分类
表2:组织
表3:链接表2个colums:分类标识,组织ID。

我想使这个接口:

http://www.glowong.nl/Uploads/26-03-2012-13-46-52.jpg

当我点击 'Opslaan /保存'。新的连接应写入表3

我不知道从哪里开始。

+0

究竟有什么方面的问题? HTML部分,处理PHP中的表单或SQL查询使用? – Marki555 2012-03-26 12:26:08

+0

我甚至试图让垂直文本去,但我觉得只有那么难。我在css中使用-transform,即使对于IE,它们也完全翻转。但其余的只是混乱起来。 – 2012-03-26 13:30:37

+0

我也无法弄清楚OP是在寻找HTML布局帮助还是SQL帮助。这个问题似乎要求帮助呈现HTML,但标记和背景是关于SQL的。 @ GillianLo-Wong,请你澄清一下吗?你在寻找什么样的答案? – Graham 2012-03-26 16:47:48

回答

1

乍一看,我会做一些像这样:

1)当你渲染HTML页面,使每个组织的复选框中的值如下类别,像这样的一个命名的数组:

<INPUT type="checkbox" name="naam1[]" value="Hosting"> 
<INPUT type="checkbox" name="naam1[]" value="Crediteur"> 
<INPUT type="checkbox" name="naam1[]" value="Debiteur"> 
.... 
<INPUT type="checkbox" name="naam2[]" value="Hosting"> 
<INPUT type="checkbox" name="naam2[]" value="Crediteur"> 
<INPUT type="checkbox" name="naam2[]" value="Debiteur"> 

2)当表单提交,通过你的组织循环/类,像这样:

foreach ($orgs as $org) { 
    foreach ($categories as $category) { 
     if (in_array($category,$_POST[$org])) { 
      //the category for the given org was checked; 
      //make sure this relationship exists in the DB 
     } else { 
      //category for this org not checked; 
      //if the relationship exists in the DB, delete it 
     } 
    } 
} 

我认为这样的事情会起作用。如果你有很多组织和类别,那么你可能会遇到问题,因为我们正在循环中进行笛卡尔连接,但是如果你有很多组织和类别,你可能需要重新考虑你的接口。

+0

谢谢拉吉,你命名的数组想法让我在我的路上! – 2012-03-27 14:47:55

1

我不知道这与您的用户界面有什么关系,但您似乎要求的是一个INSERT INTO命令,它从SELECT获取其数据。例如:

INSERT INTO table3 (category, organization) 
    SELECT categ.name,org.name FROM categ, org 
    WHERE categ.id=org.categ; 

但是,如果你想使用户界面的一部分,那么也许你真的不希望这是第三不亚于PHP数组,你将用于填充HTML表单。我认为我不太了解您的数据如何存储以便能够以有用的方式对此进行评论。