Jquery 创建动态表单,但如何进行查询?
我创建了一个动态表单,允许您修改所需的输入字段数量。这是因为他们可能有15个乐队成员,需要15个字段,或者一个乐队可能有2个。我唯一的问题是在提交表单时,每个输入都被命名为“memberName1”、“membername2”等,这是使用jQuery完成的。在运行查询时/之前,如何运行检查以查看这些字段是否已填充,以及是否要将其值输入数据库?谢谢 编辑1: 我在想下面的代码。但是我需要运行一个循环来计算所有当前字段,其中名称为Jquery 创建动态表单,但如何进行查询?,jquery,sql,coldfusion,Jquery,Sql,Coldfusion,我创建了一个动态表单,允许您修改所需的输入字段数量。这是因为他们可能有15个乐队成员,需要15个字段,或者一个乐队可能有2个。我唯一的问题是在提交表单时,每个输入都被命名为“memberName1”、“membername2”等,这是使用jQuery完成的。在运行查询时/之前,如何运行检查以查看这些字段是否已填充,以及是否要将其值输入数据库?谢谢 编辑1: 我在想下面的代码。但是我需要运行一个循环来计算所有当前字段,其中名称为memberName,后跟一个数字。与其停在第一个空字段,不如将它们全
memberName
,后跟一个数字。与其停在第一个空字段,不如将它们全部浏览一遍。如果该值为空,则不执行任何操作。如果它有一个值,那么将它插入到我的表中
<cfquery datasource="exampledatasource" name="insertbandmembers">
Insert Into members(members_name)
Values (memberName#i#)
</cfquery>
插入成员(成员名称)
值(memberName#i#)
使用静态数字循环,但一旦序列中的一个数字没有被传递,循环就会中断。您还可以计算jQuery中的数字字段,并将其与表单提交一起传递
<cfquery datasource="exampledatasource" name="insertbandmembers">
INSERT Into members(members_name)
VALUES
<cfloop index="i" from="1" to="15">
<cfif structKeyExists(form, 'memberName#i#') AND len(form['memberName#i#'])>
<cfif i neq 1>, </cfif>
( <cfqueryparam cfsqltype="cf_sql_varchar" value="#form['memberName#i#']#"> )
<cfelse>
<cfbreak>
</cfif>
</cfloop>
</cfquery>
插入成员(成员名称)
价值观
,
( )
我会这样做:
<cfloop list="#form.fieldnames#" index="ThisElement">
<cfif left(ThisElement, 10) is "memberName">
<cfset ThisValue = form[ThisElement]>
<cfif len(ThisValue)>
<cfquery name="AddRecord">
Insert Into members(members_name)
Values
( <cfqueryparam cfsqltype="cf_sql_varchar" value="#ThisValue#"> )
</cfquery>
</cfif> <!--- len(thisvalue) --->
</cfif> <!--- left(ThisElement, 10) is "memberName" --->
</cfloop>
插入成员(成员名称)
价值观
( )
(这本来是一个注释,但太长了……)
有不同的方法来解决这个问题。我最喜欢的。基本上,jquery将成员总数存储在一个隐藏的表单字段中。然后使用该值循环遍历成员字段,验证值,并根据需要插入
您可以很容易地修改或使用的示例来实现这一点。注意,他们正在使用
来帮助防范sql注入?此外,由于这些是相关的插入,因此您希望将整个内容包装在一个
中。这样可以确保将镶件作为单个单元进行处理。要么他们都成功了,要么他们一起失败了
<cfparam name="form.totalFields" default="0" >
<cfloop from="1" to="#val(form.totalFields)#" index="x">
<!--- extract current name --->
<cfset memberName = trim(FORM["memberName"& x])>
<!--- insert NON-empty values --->
<cfif len(memberName)>
<cfquery datasource="exampledatasource" name="insertbandmembers">
INSERT INTO members ( members_name )
VALUES
(
<cfqueryparam value="#memberName#" cfsqltype="cf_sql_varchar">
)
</cfquery>
</cfif>
</cfloop>
插入成员(成员名称)
价值观
(
)
使用html5 required属性,但它在IE和Safari中不起作用。如果将字段数放在隐藏表单字段中,并循环到不会中断的字段值to=“#form.numberofields#”
您忘记了结束)围绕成员名称值。此外,并非每个dbms都支持插入多行查询。是的,如果提供numberOfFields,则将删除cfelse和cfbreak。查询语法是mysqli,我仍然支持将字段数添加到隐藏表单字段中,并将循环添加到值中。随着字段的添加,它可以很容易地在jquery中更新。我们都有自己的看法。我知道你的,但不分享。我认为这是一个不必要的复杂问题。我不确定在整个表单结构上循环比设置变量容易多少,但可以。:)我们可以同意不同意。