表单数据未在ColdFusion中发送

Jos*_*sef 2 forms coldfusion

我正在尝试研究ColdFusion(刚刚开始)并在进行一些测试时卡住了.

基本上,我试图将数据从form.cfm传递到storage.cfm.但是,数据似乎没有通过/发送.

这是form.cfm(请忽略标记,这仅用于测试,我是CF的新手,所以你可能会看到一些可怕的东西:D)

<cfparam name="userId" default=0/>
<cfparam name="firstName" default=""/>
<cfparam name="lastName" default=""/>
<cfparam name="address" default=""/>

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Learning CF</title>
  <meta charset="UTF-8">
</head>
<body>
  <h2>Persons Table - <cfif userId EQ 0>Add<cfelse>Edit</cfif></h2>
  <form action="storage.cfm" method="POST">
    <input type="hidden" name="userId" value="#userId#">
    <cfdump var="#userId#"/>
    <br/><br/>
    <label>First Name:</label>
    <input type="text" name="firstName" value="<cfoutput>#firstName#</cfoutput>"><br/><br/>
    <label>Last Name:</label>
    <input type="text" name="lastName" value="<cfoutput>#lastName#</cfoutput>"><br/><br/>
    <label>Address:</label>
    <input type="text" name="address" value="<cfoutput>#address#</cfoutput>"><br/><br/>
    <input type="submit" value="Submit">
  </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这里的cfdump告诉我userId是0.这是storage.cfm

<cfparam name="form.userId" default=""/>
<cfdump var="#form.userId#"/>
Run Code Online (Sandbox Code Playgroud)

当我点击提交时,只显示storage.cfm中显示的内容

#用户身份#

Beg*_*ner 10

您需要将userid两者括起来cfoutput以便对其进行评估.或更好的只是包装内的形式cfoutput.

<cfoutput>
  <form action="storage.cfm" method="POST">
    <input type="hidden" name="userId" value="#userId#">
    <label>First Name:</label>
    <input type="text" name="firstName" value="#firstName#">
    <label>Last Name:</label>
    <input type="text" name="lastName" value="#lastName#">
    <label>Address:</label>
    <input type="text" name="address" value="#address#">
    <input type="submit" value="Submit">
  </form>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

  • *或者更好的方法是将表单包装在cfoutput.*..中,这比在每个`input`中嵌套单个标签更具可读性:) (3认同)