如何访问cfset的值到ajax函数

时间:2015-08-17 08:05:44

标签: coldfusion

我是ColdFusion的新手。 我试图将ColdFusion值访问到ajax函数。

<cfset lagtime=#data# />
<script type="text/javascript" language="JavaScript">
 function test(){
   var adata =<cfoutput>#lagtime#</cfoutput>;
   alert(adata);
 }
</script>

我想将lagtime值访问变量adata。 如果有人知道请帮助我。

谢谢

3 个答案:

答案 0 :(得分:1)

您可能遇到的问题是数据参数中包含的值可能是导致javascript中断的字符串。以防我将输出包装在单引号中,告诉javascript将您的值视为字符串。

此外,我不确定您的HTML是什么样的。为了完整起见,我已经包含了一个完整的实例。另请注意,并非真正需要lagtime变量。

<cfset data = "hello">

<cfoutput>
<html>
    <head>
    <script type="text/javascript" language="JavaScript">
    function test()
    {
        var adata = '#data#';
        alert(adata);
    }
    </script>
    </head>
    <body>
        <input type="button" value="Execute Test" onclick="test();">
    </body>
</html>
</cfoutput>

另外要明确你没有访问coldfusion变量。你正在做的是使用coldfusion动态创建javascript。例如这就是为什么无法将一个javascript变量分配给cfml模板中的coldfusion变量。

答案 1 :(得分:0)

如果数据类型为<html><head><script language="javascript"> <!--. . . </script> <noscript> <title>No JavaScript Error</title> <body> <h3 align="center">Your Browser does not support JavaScript, or it is disabled.<br/>To run this application, you must enable JavaScript!!</h3> </body></noscript></head></html> ,请使用:

string

答案 2 :(得分:0)

我鼓励使用toScript()函数为Javascript分配ColdFusion变量。它还支持转换复杂的数据类型,如数组,结构和查询。

<cfset lagtime=#data# />
<script type="text/javascript" language="JavaScript">
<cfoutput>
 function test(){
   var #toScript(lagtime, "adata")#;
   alert(adata);
 }
</cfoutput>
</script>

要清楚,它与动态声明一个javascript变量的功能相同,但它可以省去类型匹配和符号。您可以忘记符号并专注于您的数据。想象一下,如果此变量是queryarray对象,则会产生痛苦。