使用 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 分开运行,所以您必须使用某种方式将值从客户端(即带有浏览器的计算机)发送到服务器。

可能的选项:

  1. 发送一个值作为 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>

  2. 通过 HTML FORM 将值作为 POST 或 GET 参数发送:

    <form action="/index.cfm" method="post"> <input type="text" name="start" value="20"/> <input type="submit"/> </form>

  3. 或使用 POST 或使用 AJAX 的 GET 将 Javascript 值发送到 ColdFusion 服务。