2

我正在努力理解使用 Coldfusion8 的服务器端,到目前为止只做客户端的东西。

假设我有一个基本的 Coldfusion 页面布局,如下所示:

<script type="text/javascript">
   function foo() {  docoument.myForm.submit(); }
</script>

<cfif isdefined("sendMyForm")>
    ... running coldfusion...
    ... displaying something...
</cfelse>
   <form action="nextPage.html" method="post" name="myForm">
       <input type="text" name="formContains" />
       <input type="hidden" name="sendMyForm" value="yup" />
       <input type="button" name="sender" value="send" OnClick="foo() /> 
   </form>
</cfif>

问题:当我提交表单时,服务器端
实际发生了什么?页面是否正在“重新加载”并且cfif导致 Coldfusion 运行并显示结果?只是在寻找一些基本信息,以便我了解正在发生的事情。

感谢提示!

4

2 回答 2

5
  1. 将 CF 和大多数 Web 服务器/系统视为接受输入(url/get、form/post、cookie 等)并返回输出(html、json、文本等)。该循环通常会重复。有人在浏览器中输入网址,请求发送到服务器,页面返回表单。用户点击提交,请求进入服务器,页面返回结果。用户单击链接,请求转到服务器……然后不断。

  2. 由于 if 语句的组织方式,您需要将表单操作提交回自身。如果在 form.cfm 文件中,则操作应该是 form.cfm。除非您在网络服务器中设置特定映射以让 CF 处理 html 文件,否则该文件将需要是 .cfm

  3. 您提到将 action 属性放在一起会将表单提交回同一页面,但我不相信这在每个浏览器中都有效。

  4. 使用 form method="post" 也更常见/更安全,然后检查structkeyexists(form, "fieldname")

于 2012-04-28T12:41:44.557 回答
0

行。不是最新的链接,而是有价值的信息。

http://www.tek-tips.com/viewthread.cfm?qid=523839l http://cookbooks.adobe.com/post_Email_contact_form_in_ColdFusion-16882.html

我试图了解表单提交在 Coldfusion 中的工作方式。如果页面结构是:

<cf "inputName" = "someValue">
   ... run the from logic
</cfif>

<cfoutput>
  <form>
    <input name="inputName" />
    ... more form
 </form>
</cfoutput>

因此,当我不采取行动提交表单时,它会被提交到它所在的页面,因此第一个 CF 部分可以运行....

于 2012-04-28T12:27:45.963 回答