在Javascript中使用变量来在调用查询的cfml标记中添加功能

0 html javascript coldfusion lucee

我希望使用来自javascript的加法和减法的值,并使用它们将startRow和endRow值一起递增.我有加法和减法工作,并显示值.现在我无法弄清楚如何在引号内添加值.每次我尝试使用##变量标记时,它都会告诉我我的变量不存在.我希望能够按下下一个和上一个按钮,让它显示前者和后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>
Run Code Online (Sandbox Code Playgroud)

我从代码中删除了数据库信息.

Mic*_*cah 5

鉴于您的示例代码,我不明白为什么您首先需要或想要使用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或GET将AJAX值发送到ColdFusion服务.