【问题标题】:Simple coldfusion pass record id to JS function?简单的coldfusion将记录ID传递给JS函数?
【发布时间】:2012-02-23 15:10:15
【问题描述】:

我试图通过 cfm 页面传递唯一的数据库会话 ID,但似乎无法使其正常工作。第 1 页有记录 id,我试图在 recordclick() 函数中保存 numSession 并将其传递到下一页,我在查询中使用它,但它不起作用。

这是我在做什么的粗略概述:

第 1 页:

<CFQUERY datasource = "database1" result = "result">
insert into user
set
blah blah
</cfquery>

<html>
<head>   
<title>page1</title>
<script type="text/javascript">
function recordClick(imageid)
{
        document.getElementById("numSend").value =       document.getElementById("numSend").value + imageid;
        document.getElementById("numSession").value = result.generated_key;
}
</script>
</head>

<body>
<FORM action="page2.cfm" method="post">

<img src="1.png" NAME="num1" onclick="recordClick(1)"
    width="100px"
    height="100px"> 
<div name="num1" id="num1"></div>

<input type="hidden" id="numSend" name="numSend" />
<input type ="hidden" id = "numSession" name ="numSession" />
<input type="submit" value="Done" />
</form>

</body>
</html>

--------------------------------------

<cfoutput>
The ID of the row I just inserted was "#numSession#"
</cfoutput>


<CFQUERY datasource = "database1">
update user
set
pin = "#numSend#"
where id= "#numSession#"
</cfquery>

【问题讨论】:

    标签: javascript coldfusion cfml


    【解决方案1】:

    ColdFusion 在服务器上执行,JavaScript 在客户端上执行。你的 JS 不知道result 是什么。

    您需要使用ColdFusion's ToScript() function

    说明

    创建分配值的 JavaScript 或 ActionScript 表达式 将 ColdFusion 变量转换为 JavaScript 或 ActionScript 变量。 该函数可以转换 ColdFusion 字符串、数字、数组、 结构,以及对 JavaScript 或 ActionScript 语法的查询 定义等效的变量和值。

    这是一个示例,取自文档:

    <cfset thisString="hello world">
    <script type="text/javascript" language="JavaScript">
        <cfoutput>
            var #ToScript(thisString, "jsVar")#;
        </cfoutput>
    </script>
    

    您的代码(已更正):

    function recordClick(imageid)
    {
        var <cfoutput>#ToScript(result.generated_key, "generated_key")#;</cfoutput>
        var objNumSend = document.getElementById("numSend");
        objNumSend.value = objNumSend.value + imageid;
        document.getElementById("numSession").value = generated_key;
    }
    

    【讨论】:

    • 谢谢,但是当我尝试在第二页中输出变量时,它似乎不起作用。第二页: #numSession#
    • 你必须比doesn't seem to work更具体
    • @user1228554,我更新了 JS 函数以包含 &lt;cfoutput&gt; 标记。这解决了您的问题吗?
    • 它是什么,在第二页上,我试图将 numSession 传递给它,它似乎没有变量中的值(记录 id)。所以它甚至不打印会话 id 我试图通过...第 2 页代码: 我刚刚插入的行的 ID 是“#numSession#” 更新用户设置 pin = "#numSend#" where id= "#numSession#"
    • @user1228554,您正在使用表单帖子,您是否使用表单范围限定输出?您的代码应如下所示:...where id= "#FORM.numSession#"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 2014-10-22
    • 2014-08-31
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多