4

我试图通过 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>
4

1 回答 1

6

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

您需要使用ColdFusion 的ToScript()功能

描述

创建一个 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;
}
于 2012-02-23T15:14:46.817 回答