如问题所述,我试图将一个或多个勾选框值插入到一个数据库字段中,最好以逗号分隔的格式插入。将多个勾选框插入到一个数据库字段中
因此,如果用户选择复选框之一,复选框二,输入到数据库将被插入为tickOne,tickTwo,等等等等
我怎么会去这样做呢? 也许使用jQuery或Javascript?
Thanx提前!
如问题所述,我试图将一个或多个勾选框值插入到一个数据库字段中,最好以逗号分隔的格式插入。将多个勾选框插入到一个数据库字段中
因此,如果用户选择复选框之一,复选框二,输入到数据库将被插入为tickOne,tickTwo,等等等等
我怎么会去这样做呢? 也许使用jQuery或Javascript?
Thanx提前!
如果你想传递的值作为一个字符串,比如逗号分隔就像你在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" />
1)没有足够的细节。 2)这样的非规范化是不好的,不要这样做。 – RedFilter 2010-08-01 14:27:07
@RedFilter - 如果这些值只是用于UI显示,非规范化可能并不坏,它可能更有效率......你不能一味地说它很糟糕,你需要更多信息来作出决定,例如,它会被质疑吗? – 2010-08-01 14:32:20
@RedFilter,如果它是一个简单的CRM,他就是一个联系表单经理。反规范化并不总是一件坏事。 – 2010-08-01 14:32:39