2012-03-26 77 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表單。我認爲我不太瞭解您的數據如何存儲以便能夠以有用的方式對此進行評論。