Coldfusion 11 在Ajax中更新局部ColdFusion变量

Coldfusion 11 在Ajax中更新局部ColdFusion变量,coldfusion-11,Coldfusion 11,我一直在尝试在ASP中为coldfusion页面执行一个简单的任务。我有一个局部变量pt,需要更新。我尝试了以下代码,但没有成功 <cfset pt.PreCaution = ""> <label> Patient Precaution: </label> <br> <cfselect name="lstPreCaution" multi

我一直在尝试在ASP中为coldfusion页面执行一个简单的任务。我有一个局部变量pt,需要更新。我尝试了以下代码,但没有成功

       <cfset pt.PreCaution = "">


        <label>
            Patient Precaution:
        </label>
        <br>
        <cfselect name="lstPreCaution" multiple="yes"
        query="GetPreCaution" 
        value="IsoTypeID" 
        display="IsoTypeName"
        size="8"
        required="yes"
        width="100"
        height="25"
        label="Precaution: "
        onclick="PreCautionSelected(this)"
        >
        </cfselect>


 function PreCautionSelected(val){
 var result ="";
 var frm=eval('document.next');

for(i = 0 ; i < val.children.length; i++)
{
    if(val.children[i].selected){
        if(result.length < 1)
        {
            result = val.children[i].value;
        }
        else
        {
            result = result + "," + val.children[i].value;
        }
    }
}
$.ajax({
    type: "POST",
    url: "details.cfm",
    data: { "#pt.PreCaution#" : result}
}).done(function(){alert(result)})
}

我对ajax调用进行了如下修改:

function PreCautionSelected(val){
    var result ="";
    var frm=eval('document.next');

    for(i = 0 ; i < val.children.length; i++)
    {
        if(val.children[i].selected){
            if(result.length < 1)
            {
                result = val.children[i].value;
            }
            else
            {
                result = result + "," + val.children[i].value;
            }
        }
    }

    $.ajax({
        type: "POST",
        url: "FileUpdater.cfc?method=setPrecautionType",
        data: { lstPrecaution : result}
    }).done(function(){})


}

<cfcomponent>
    <cffunction name="setPrecautionType" access="remote" returntype="Any" >
        <cfargument name="lstPrecaution" type="any" required="true" >
        <cfset  session.lstPreCaution = #arguments.lstPrecaution#>
        <cfreturn />

    </cffunction>

</cfcomponent>
我添加了以下CFC文件。此文件更新会话变量


CFC文件

您只有一个错误。选择框没有onclick功能,因此您有onchange功能意味着工作正常

感谢您的输入。正在调用Ajax函数并提取完整的数据。唯一的问题是服务器端没有更新ColdFusion变量


我通过将数据写入会话数据解决了这个问题。问题是程序使用的旧CF5框架。

您的答案有点令人困惑。你可能想考虑编辑它。你的问题的措辞有点混乱。A你能详细说明你所说的不成功是什么意思吗?如果您收到错误,请在您的帖子中包含完整的错误消息。B听起来好像您正试图将一个变量从ASP页面发布到ColdFusion页面,即details.cfm。对吗?为什么您认为需要填充名为pt.prevention的变量?这似乎不太可能,因为POST值通常会出现在接收页面的表单范围内。您是否可以详细说明一些细节和/或代码片段,说明如何解决问题,以帮助下一个家伙?