2010-08-01 28 views
1

如問題所述,我試圖將一個或多個勾選框值插入到一個數據庫字段中,最好以逗號分隔的格式插入。將多個勾選框插入到一個數據庫字段中

因此,如果用戶選擇複選框之一,複選框二,輸入到數據庫將被插入爲tickOne,tickTwo,等等等等

我怎麼會去這樣做呢? 也許使用jQuery或Javascript?

Thanx提前!

+3

1)沒有足夠的細節。 2)這樣的非規範化是不好的,不要這樣做。 – RedFilter 2010-08-01 14:27:07

+2

@RedFilter - 如果這些值只是用於UI顯示,非規範化可能並不壞,它可能更有效率......你不能一味地說它很糟糕,你需要更多信息來作出決定,例如,它會被質疑嗎? – 2010-08-01 14:32:20

+0

@RedFilter,如果它是一個簡單的CRM,他就是一個聯繫表單經理。反規範化並不總是一件壞事。 – 2010-08-01 14:32:39

回答

2

如果你想傳遞的值作爲一個字符串,比如逗號分隔就像你在jQuery中提到的,你可以設置使用.map()值,就像這樣:

$(".mySelector:checkbox").change(function() { 
    var values = $(".mySelector:checkbox:checked").map(function() { 
       return this.value; 
       }).get().join(', '); 
    $("#myHiddenInput").val(values); 
}); 

每當複選框發生變化,它會重新做字符串部分,重新​​序列化結果,所以在回發時它應該是當前的UI選擇。 .map()通過mySelector類獲得:checked元素的值的數組,然後我們只需執行.join()即可將該數組轉換爲字符串,並使用.val()將隱藏的輸入設置爲該字符串。

這假定標記這樣的:

<input type="checkbox" class="mySelector" value="tickOne" /> 
<input type="checkbox" class="mySelector" value="tickTwo" /> 
.... 
<input type="hidden" id="myHiddenInput" /> 

You can give it a try here

+0

所以我應該創建一個隱藏的輸入字段,然後一旦用戶選擇了勾號框,他們將被分配給隱藏的輸入字段值? – Odyss3us 2010-08-01 14:35:33

+0

@kielie - 是的,如果你想做它的客戶端類似的東西...我添加了一個演示/示例標記來更好地說明它:) – 2010-08-01 14:36:12

+0

Thanx a million! ;) – Odyss3us 2010-08-01 16:54:45

相關問題