0

在查看我的 CF 页面时,我试图找到错误消息的根本原因,但是该页面仍然可以正常运行。我现在必须道歉。这是我使用 CF 的第三天。我真的很感激任何帮助

 <cfsetting showDebugOutput="Yes">
<form id="form1" name="form1" method="post" action="">

  <label for="Chris3">Please Select.<br />
  </label>
  <select name="Chris3" id="Chris3">
    <option value="COOKWARE/CUTLERY">COOKWARE/CUTLERY</option>
    <option value="BAKEWARE/ ELECTRICS">BAKEWARE/ ELECTRICS</option>
    <option selected="selected">Please Select one</option>
  </select>
  <input type="submit" name="SUBMIT" id="SUBMIT" value="Submit" />
</form>
<p>
<cfset Chris3 ="Form.Chris3">
  <cffile action="append"
  file="C:\Inetpub\wwwroot\PURGE\WS\DEPTM.txt"
  output="#Chris3#">

错误信息:

以下信息仅供网站开发人员用于调试目的。

处理请求
变量 CHRIS3 未定义时发生错误。

The error occurred in C:\Inetpub\wwwroot\PURGE\WS\PURGE.cfm: line 29

27 :   <cffile action="append"
28 :   file="C:\Inetpub\wwwroot\PURGE\WS\DEPTM.txt"
29 :   output="#Chris3#">
30 : </p>
31 : <p>Below are Departments that have finished reviewing the purge</p>


--------------------------------------------------------------------------------

Resources: 
Check the ColdFusion documentation to verify that you are using the correct syntax. 
Search the Knowledge Base to find a solution to your problem. 


Browser   Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) 
Remote Address   192.168.97.38 
Referrer    
Date/Time   06-Apr-12 03:30 PM 

Stack Trace (click to expand)
4

2 回答 2

2

看起来有两个问题:

第一个问题是您设置变量的位置Chris3。如果您希望它等于传递给表单的值,那么您需要使用

    <cfset Chris3 = form.Chris3 /> 

..您现在编写它的方式是将文字字符串“form.Chris3”存储为输入的值。

第二个是在提交表单之前该字段不存在。你可以做两件事之一来处理这个问题。像 Scott 建议的那样添加 a cfparam,因此始终定义该值:

  <cfparam name="form.Chris3" default="" />

或者,您可以在访问之前添加检查以查看表单是否已提交,将值设置为您的变量:

 <cfif StructKeyExists(form,'Chris3')> 

如果您使用<cfparam>简单地检查字段的长度:

 <cfif Len(Trim(form.Chris3))>

至于显示未定义的值,我认为您的代码没有任何问题。我复制并粘贴了它,它在我的机器上运行良好。

于 2012-04-07T00:44:19.873 回答
0

除非您在页面顶部设置(或参数)值 form.chris3,否则第一次运行该页面时会出现此错误,因为表单范围可能为空。提交表单后,它将按预期工作。

不确定您要做什么,但在执行 CFFILE 之前将 CFFILE 包装在 CFIF 中检查“form.chris3”是否存在(或将“form.chris3”的值设置为“chris3”)。

于 2012-04-07T00:25:06.670 回答