Простой идентификатор записи прохода Coldfusion для функции JS? - PullRequest
4 голосов
/ 23 февраля 2012

Я пытаюсь передать уникальный идентификатор сеанса базы данных через страницы cfm, но не могу заставить его работать. Страница 1 имеет идентификатор записи, я пытаюсь сохранить ее в numSession в функции recordclick () и передать на следующей странице, где я использую ее в своем запросе, но она не работает.

Вот примерный план того, что я делаю:

Страница 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>

1 Ответ

5 голосов
/ 23 февраля 2012

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;
}
...