通过带有Coldfusion的Ajax使用选择框设置会话变量
我试图在选择框的值更改时设置coldfusion会话变量。但是,我在一个警告框中看到一个错误,上面写着“Object HTMLSelectElement”,并且没有更改会话变量。任何帮助都会很好 代码: Form.cfm通过带有Coldfusion的Ajax使用选择框设置会话变量,ajax,coldfusion,Ajax,Coldfusion,我试图在选择框的值更改时设置coldfusion会话变量。但是,我在一个警告框中看到一个错误,上面写着“Object HTMLSelectElement”,并且没有更改会话变量。任何帮助都会很好 代码: Form.cfm <cfset session.item1 = 0> <cfselect name="item1" class="form-control" id="item1"> <option value="0">0</option&
<cfset session.item1 = 0>
<cfselect name="item1" class="form-control" id="item1">
<option value="0">0</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
<option value="50">50</option>
</cfselect>
组件.cfc
<cffunction name="getItem1" access="remote" returntype="any">
<cfargument name="item1" type="any" required="yes">
<cfset session.item1 = #argument.item1#>
<cfreturn />
</cffunction>
更改此选项:
<cfset session.item1 = #argument.item1#>
为此:
<cfset session.item1 = arguments.item1>
正确的范围是参数,参数的复数形式。另外,你不需要英镑符号
与您的问题无关,但如果您仅使用CF使CF代码正常工作,则此类故障排除会变得容易得多。更改此选项:
<cfset session.item1 = #argument.item1#>
为此:
<cfset session.item1 = arguments.item1>
正确的范围是参数,参数的复数形式。另外,你不需要英镑符号
与您的问题无关,但如果您仅使用CF使CF代码正常工作,则此类故障排除会变得容易得多。(注释太长)
此外,还有两个其他问题可能会阻止代码按预期运行:
success()
函数将响应变量定义为item1Selected
。通过使用alert(item1
),实际上显示的是
元素,而不是来自ajax调用的响应cffunction
实际上不返回任何内容,即
,因此即使修复变量名,响应也将是未定义的或空白的。不需要返回响应。但是,如果确实希望将某种类型的数据返回到success()
,则需要修改函数以返回某些内容(JSON等)success()
函数将响应变量定义为item1Selected
。通过使用alert(item1
),实际上显示的是
元素,而不是来自ajax调用的响应cffunction
实际上不返回任何内容,即
,因此即使修复变量名,响应也将是未定义的或空白的。不需要返回响应。但是,如果确实希望将某种类型的数据返回到success()
,则需要修改函数以返回某些内容(JSON等)我不确定在ajax调用中作为数据传递item1是否会作为参数传递给CF。我会将“&item1=”+item1Selected附加到url的末尾,并删除数据元素。否则,您将不得不在函数中使用getHTTPRequestData并反序列化数据。我不确定在ajax调用中作为数据传递item1是否会作为参数传递给CF。我会将“&item1=”+item1Selected附加到url的末尾,并删除数据元素。否则,您必须在函数中使用getHTTPRequestData并反序列化数据。仅在这些行中使用CF,您可以在浏览器中测试“远程”函数:
http://yourserver/yourcomponent.cfc?method=yourMethod¶m1=blahblah
。如果它抛出一个错误,您就知道它在jQuery中也无法工作。仅在这些行中使用CF,您就可以在浏览器中测试“远程”函数:http://yourserver/yourcomponent.cfc?method=yourMethod¶m1=blahblah
。如果它抛出一个错误,那么您知道它在jQuery中也无法工作。