Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 创建动态表单,但如何进行查询?_Jquery_Sql_Coldfusion - Fatal编程技术网

Jquery 创建动态表单,但如何进行查询?

Jquery 创建动态表单,但如何进行查询?,jquery,sql,coldfusion,Jquery,Sql,Coldfusion,我创建了一个动态表单,允许您修改所需的输入字段数量。这是因为他们可能有15个乐队成员,需要15个字段,或者一个乐队可能有2个。我唯一的问题是在提交表单时,每个输入都被命名为“memberName1”、“membername2”等,这是使用jQuery完成的。在运行查询时/之前,如何运行检查以查看这些字段是否已填充,以及是否要将其值输入数据库?谢谢 编辑1: 我在想下面的代码。但是我需要运行一个循环来计算所有当前字段,其中名称为memberName,后跟一个数字。与其停在第一个空字段,不如将它们全

我创建了一个动态表单,允许您修改所需的输入字段数量。这是因为他们可能有15个乐队成员,需要15个字段,或者一个乐队可能有2个。我唯一的问题是在提交表单时,每个输入都被命名为“memberName1”、“membername2”等,这是使用jQuery完成的。在运行查询时/之前,如何运行检查以查看这些字段是否已填充,以及是否要将其值输入数据库?谢谢

编辑1:

我在想下面的代码。但是我需要运行一个循环来计算所有当前字段,其中名称为
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中更新。我们都有自己的看法。我知道你的,但不分享。我认为这是一个不必要的复杂问题。我不确定在整个表单结构上循环比设置变量容易多少,但可以。:)我们可以同意不同意。