【发布时间】:2015-08-26 16:24:40
【问题描述】:
我想知道在用户点击一次提交后,是否有可能让这个小提琴上的表单像这样出现在数据库中。
+------+------+----------+
| Name | Meal | Quantity |
+------+------+----------+
| Adam | Beef | 2 |
| Adam | Pork | 1 |
| Adam | Lamb | 3 |
+------+------+----------+
http://jsfiddle.net/f8zyakvj/1/
我知道通过多选,您选择的所有信息都作为数组发送,但是对于复选框,我怎样才能使信息以类似的方式发送。当我勾选前 3 个框并提醒食物的价值以查看我得到了什么时,无论我勾选哪个框,我得到的都是“1”。
我希望它会像多选一样简单,我可以为 cfm 做这样的事情
<cfloop list="#form.meal#, #form.quantity#" index="currMeal, currQuant">
<cfquery name="Add" datasource="food">
INSERT INTO Log (Name, Meal, Quantity)
VALUES (
<cfqueryparam value="#Form.Name#" cfsqltype="cf_sql_varchar">
<cfqueryparam value="#currMeal#" cfsqltype="cf_sql_varchar">
<cfqueryparam value="#currQuant#" cfsqltype="cf_sql_integer">
)
</cfquery>
</cfloop>
我们将不胜感激。
【问题讨论】:
-
多选和复选框的行为方式相同。您要么得到一个以逗号分隔的所有选定内容的列表,要么你什么也得不到,甚至没有一个空字符串。当然,这假设您所有的复选框都具有相同的名称。您关于以数组形式发送信息的说法不正确。
-
你能解释一下它们是如何以同样的方式行事的吗?对于多选菜单,我可以执行类似 alert($('select#meal').val()) 的操作,假设我检查了底部的 3,它会给我一个 2、3、4 的值。当我尝试对复选框做同样的事情,假设 $('input#meal').val() 是正确的,我得到的只是 1 @DanBracuk
-
Dan 正在谈论基本表单 POST(无 javascript)的行为。当您谈论 jQuery javascript 库的行为时。两种完全不同的东西。旁注,我意识到这可能是一个简化的示例,但如果不是……连接表通常存储 id。如果“meal”和/或“name”的来源是另一个 db 表,则应插入 MealID/NameID,并将 cfsqltype 更改为匹配。
标签: javascript html sql-server coldfusion