Reputation: 83
Im trying to pass the unique database session id through cfm pages but cannot seem to get it working. Page 1 has the record id, im trying to save in numSession in the recordclick() function and pass it in the next page, where I use it in my query, but its not working.
Heres a rough outline of what im doing:
Page 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>
Upvotes: 4
Views: 3954
Reputation: 61812
ColdFusion is executed on the server, JavaScript is executed on the client. Your JS has no idea what result
is.
You need to use ColdFusion's ToScript()
function.
Description
Creates a JavaScript or ActionScript expression that assigns the value of a ColdFusion variable to a JavaScript or ActionScript variable. This function can convert ColdFusion strings, numbers, arrays, structures, and queries to JavaScript or ActionScript syntax that defines equivalent variables and values.
Here's an example, taken from the docs:
<cfset thisString="hello world">
<script type="text/javascript" language="JavaScript">
<cfoutput>
var #ToScript(thisString, "jsVar")#;
</cfoutput>
</script>
Your code (corrected):
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;
}
Upvotes: 6