3

我是coldfusion的新手,请在下面查看我的代码

<cfif isDefined("form.submit")> 
 <cfoutput> 
     <h3>hi</h3> 
 </cfoutput> 
</cfif> 
<cfform action="#CGI.SCRIPT_NAME#"> 
  User Name:<cfinput type="Text" name="usr_nm"><br> 
  <cfinput type="Radio" name="access_flg" value="0">Admin
  <cfinput type="Radio" name="access_flg" value="1">User</br>
  <cfinput type="submit" name="submit" value="submit"><br> 
</cfform>

但是,当我点击提交按钮时,我期待结果为你好

我还没有看到你好消息,我的代码有什么问题吗,请任何人帮助我

4

2 回答 2

5

由于您是 ColdFusion 的新手,我会立即给您一些建议:

1. 不要将表单提交到同一页面。

将表单提交到单独的页面进行处理。原因是,当您进入更高级的应用程序时,您需要将页面/URL 限制为仅响应适当的 HTML 动词。

您的表单页面应该响应 HTTP GET。您的表单处理页面应该只响应 HTTP POST。

2. 不要使用 CFFORM。

的功能CFFORM是创建 JavaScript 验证和服务器端交互。这可以通过现代 JavaScript 库轻松完成,例如

3. 给你的表单元素一个ID,以及一个NAME

这允许在使用 JavaScript 时更轻松地引用表单元素。

4. 不要将提交按钮命名为“提交”。

如果您想使用 JavaScript 提交表单,函数是submit().

例如:$('#myForm').submit();

将表单元素与函数命名相同会导致错误。

这是my_form.cfm

<form id="myForm" name="myForm" action="my_form_action.cfm" method="post">
    User Name:<input type="Text" id="usr_nm" name="usr_nm"><br> 
    <input type="Radio" id="access_flg_0" name="access_flg" value="0">Admin
    <input type="Radio" id="access_flg_1" name="access_flg" value="1">User</br>
    <input type="submit" id="my_form_submit" name="my_form_submit" value="Submit"><br> 
</form>

CFOUTPUT5.除非是从服务器渲染数据,否则不需要使用。

这是my_form_action.cfm

<cfif structKeyExists(form, "my_form_submit")> 
<h3>Hi!<lt>
</cfif>

更好的是:

<cfif (cgi.request_method IS "post") AND (structKeyExists(form, "my_form_submit"))> 
<h3>Hi!<lt>
</cfif>

于 2016-02-11T18:52:42.517 回答
1

这是对阿德里安回答的这一部分的详细说明:

<cfif (cgi.request_method IS "post") AND (structKeyExists   form, "my_form_submit"))> 
<h3>Hi!</h3>
</cfif>

这是代码重用的候选者。在我们的一个应用程序中,我编写了一个自定义标签,它执行以下操作:

if (StructKeyExists(attributes, 'ScopeToCheck') is false)
attributes.ScopeToCheck = "form";

if (StructKeyExists(caller, attributes.ScopeToCheck) is false) 
Redirect = true;
else if (StructIsEmpty(caller[attributes.ScopeToCheck]) is true)
Redirect = true;
else
Redirect = false;
if (Redirect == true)
location(somewhere, false);

自定义标签方法适合我的情况。对于其他情况,可以将相同的逻辑放入返回 true 或 false 的 udf 中。然后调用页面可以决定如何处理该信息。

于 2016-02-11T20:36:50.687 回答