我正在努力了解使用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>
问题:
提交表单时,服务器端实际发生了什么?是否重新加载页面&#34;并且 cfif 导致coldfusion运行并显示结果?只是寻找一些基本信息,以便我了解发生了什么。
感谢提示!
答案 0 :(得分:5)
将CF和大多数Web服务器/系统视为接受输入(url / get,form / post,cookie等)并返回输出(html,json,text等)。这个循环通常会重复。有人在浏览器中输入Web地址,请求转到服务器,返回表单的页面。用户点击提交,请求进入服务器,返回结果页面。用户点击链接,请求转到服务器......等等。
由于if语句的组织方式,您需要将表单操作提交回自身。如果在form.cfm文件中,则action应为form.cfm。除非您在Web服务器中设置特定映射以使CF处理html文件,否则该文件将需要为.cfm
你提到将动作属性全部放在一起将表单提交回同一页面,但我不相信这适用于每个浏览器。
使用form method =“post”更常见/更安全,然后检查structkeyexists(form, "fieldname")
答案 1 :(得分: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部分可以运行....