假设我的表单如下所示:
<form name="myform" method="post" action="index.html">
<input type="hidden" name="work" id="work1" value="20">
<input type="hidden" name="play" id="play1" value="10">
<input type="submit" name="submit">
</form>单击submit将form.work和form.play发送到index.html。在那里,工作和娱乐的价值被用在一个特定的公式中。
现在,我需要将这个页面的链接发送给几个具有预先定义的工作和娱乐价值观的人。我试过这个:
www.mysite.com/index.html?work=20&play=10不幸的是,这并不起作用。有什么方法可以做到这一点吗?
仅供参考,我使用的是ColdFusion服务器。
发布于 2012-10-03 09:21:21
ColdFusion有一个名为URL的作用域和一个名为FORM的作用域,分别对应于每个HTTP方法post/get。其他语言将它们混为一谈。撇开利弊不谈,一些CFML框架实际上会为您组合它们,并将它们作为“请求上下文”的一部分提供。
在这种情况下,您需要做的是检查URL和表单作用域中的值。或者,您可以将表单方法更改为"get“,以便始终使用URL变量而不是表单变量。这样,您将始终使用URL.variables而不是Form.variable
cfparam>会为您设置默认值,以便变量存在。它类似于cfset>,但只有在缺少值时才会设置。
所以,在你的代码的顶部:
//this sets the url value to always be blank unless something is passed in
<cfparam name="url.work" default="" />
//this sets the form value to the url value by default
<cfparam name="form.work" default="#url.work#" />
//you should never actually output user content to the screen, but here it is
<cfoutput>#form.work#</cfoutput>一如既往,永远不要相信用户提供的内容,在数据库中使用数据或将内容发送回浏览器之前,请对数据进行清理。
发布于 2012-10-03 18:59:46
您遇到的问题是您试图在超文本标记语言页面上使用ColdFusion。ColdFusion不会解析'index.html‘,除非您专门更改了web服务器,使其直接由ColdFusion解析.html文件。
通过或
发布于 2012-10-03 07:50:16
可以,一般可以传递查询字符串参数。它们只是构成所请求的URL的一部分。
服务器端框架是否使它们可用取决于框架。我希望大多数框架都会公开它们,即使请求是POST请求。它们在ASP.Net中可用。我对冷聚变不太确定。
method="post“
通知浏览器将表单变量作为post参数放置在HTTP请求中。这并不排除您还可以包含查询字符串变量。
https://stackoverflow.com/questions/12700060
复制相似问题