使用 Javascript 中的变量在调用查询的 cfml 标记中添加功能
Using variable in Javascript to add functionality within cfml tags that call a query
我希望使用来自 javascript 的加法和减法的值,并使用它们一起递增 startRow 和 endRow 值。我进行了加法和减法运算,并显示了值。现在我不知道如何在引号内添加值。每次我尝试使用 ## 变量标记时,它都会告诉我我的变量不存在。我希望能够按下下一个和上一个按钮并让它显示前 20 个结果和后 20 个结果。 `
<cfoutput>
<script type="text/javascript">
var currentValue = 0;
var add = function(valueToAdd){
("adding: " + valueToAdd);
currentValue += valueToAdd;
document.getElementById('number').innerHTML = currentValue;
};
</script>
</cfoutput>
<cfparam name="url.start" default="1" >
<cfquery name="query" datasource="">
</cfquery>
<table>
<cfset totalPages = ceiling(query.recordCount)>
<cfset thisPage = ceiling(url.start)>
<cfloop query="query" startRow="1" endRow="20">
<cfoutput>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</cfoutput>
</cfloop>
</table>
<html>
<head>
</head>
<body>
<div id="text">Results = <span id="number">0</span><div>
<a href="javascript:add(20)">Plus 20 Results</a>
<a href="javascript:add(-20)">Minus 20 Results</a>
</body>
</html>
我从代码中删除了数据库信息。
鉴于您的示例代码,我不明白您为什么首先需要或想要使用 Javascript 但为了回答问题,
答案是您不能直接将客户端 Javascript 变量的值传递给像 ColdFusion 这样的服务器端语言。 Javascript 在客户端运行,例如在您的浏览器中。 ColdFusion 在服务器上运行。因为 Javascript 与 ColdFusion 分开运行,所以您必须使用某种方式将值从客户端(即带有浏览器的计算机)发送到服务器。
可能的选项:
发送一个值作为 URL 参数:
<a href="https://www.example.com/index.cfm?start=20">Plus 20 Results</a>
或
<a href="javascript:location.href='https://www.example.com/index.cfm?start='+add(20)"/>Plus 20 Results</a>
通过 HTML FORM 将值作为 POST 或 GET 参数发送:
<form action="/index.cfm" method="post">
<input type="text" name="start" value="20"/>
<input type="submit"/>
</form>
或使用 POST 或使用 AJAX 的 GET 将 Javascript 值发送到 ColdFusion 服务。
我希望使用来自 javascript 的加法和减法的值,并使用它们一起递增 startRow 和 endRow 值。我进行了加法和减法运算,并显示了值。现在我不知道如何在引号内添加值。每次我尝试使用 ## 变量标记时,它都会告诉我我的变量不存在。我希望能够按下下一个和上一个按钮并让它显示前 20 个结果和后 20 个结果。 `
<cfoutput>
<script type="text/javascript">
var currentValue = 0;
var add = function(valueToAdd){
("adding: " + valueToAdd);
currentValue += valueToAdd;
document.getElementById('number').innerHTML = currentValue;
};
</script>
</cfoutput>
<cfparam name="url.start" default="1" >
<cfquery name="query" datasource="">
</cfquery>
<table>
<cfset totalPages = ceiling(query.recordCount)>
<cfset thisPage = ceiling(url.start)>
<cfloop query="query" startRow="1" endRow="20">
<cfoutput>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</cfoutput>
</cfloop>
</table>
<html>
<head>
</head>
<body>
<div id="text">Results = <span id="number">0</span><div>
<a href="javascript:add(20)">Plus 20 Results</a>
<a href="javascript:add(-20)">Minus 20 Results</a>
</body>
</html>
我从代码中删除了数据库信息。
鉴于您的示例代码,我不明白您为什么首先需要或想要使用 Javascript 但为了回答问题, 答案是您不能直接将客户端 Javascript 变量的值传递给像 ColdFusion 这样的服务器端语言。 Javascript 在客户端运行,例如在您的浏览器中。 ColdFusion 在服务器上运行。因为 Javascript 与 ColdFusion 分开运行,所以您必须使用某种方式将值从客户端(即带有浏览器的计算机)发送到服务器。
可能的选项:
发送一个值作为 URL 参数:
<a href="https://www.example.com/index.cfm?start=20">Plus 20 Results</a>
或
<a href="javascript:location.href='https://www.example.com/index.cfm?start='+add(20)"/>Plus 20 Results</a>
通过 HTML FORM 将值作为 POST 或 GET 参数发送:
<form action="/index.cfm" method="post"> <input type="text" name="start" value="20"/> <input type="submit"/> </form>
或使用 POST 或使用 AJAX 的 GET 将 Javascript 值发送到 ColdFusion 服务。