0

我是coldfusion 和Java Script 的新手,我无法确定完成这项工作所需的正确语法。我想做的是有一个下拉菜单,其中包含三个选项;活动、非活动和全部。目标是,当页面最初加载时,它默认为活动并显示所有活动的托运人。但是,如果用户想要查看非活动用户,他们会从下拉菜单中选择它,并且数据应该更改为仅显示这些值。所有都将显示活动和非活动。

我想这样做的方法是创建一个名为 Active_status 的变量,然后使用 Onclick 更改值并刷新页面。我正在使用 if 语句来生成数据。

<cfparam name="active_status" default="ACTIVE">

这是一开始首先显示活跃

 <select name="active_status" id="active_status" class="tx" onchange="editTable(this.value)">
        <option value="ACTIVE" selected="selected">ACTIVE</option>
        <option value="INACTIVE">INACTIVE</option>
        <option value="ALL">ALL</option>
</select>

这是在页面中生成选项的代码

 <script language="javascript">
function editTable( inVal )
{
    if( inVal == 'ACTIVE' )
    {
        document.getElementById( "active_status" ).value = "ACTIVE";
        window.location.reload();
    }
    else if ( inVal == 'INACTIVE' )
    {
        document.getElementById( "active_status" ).value = "INACTIVE";
        window.location.reload();

    }
    else if ( inVal == 'ALL' )
    {
        document.getElementById( "active_status" ).value = "ALL";
        window.location.reload();

    }
}
 </script>

显示活动作品,但每次选择后只显示活动作品。我确信这是由于我拥有的默认值,但我不确定我需要使用正确的语法来完成这项工作。

如果您能在这方面为我提供帮助,将不胜感激。任何建议都会很棒,或者如果您有更好的方法来做到这一点,我总是渴望学习新事物。

我进行了更改,但单击 Inactive 时它仍然没有更改?

4

1 回答 1

1

我想这样做的方法是创建一个名为 Active_status 的变量,然后使用 Onclick 更改值并刷新页面。

通过在不进行任何 AJAX 调用或先提交表单的情况下使用 Javascript 刷新页面,您只需重新加载页面并重置客户端表单数据。数据无处可去——没有任何东西发送到服务器。

如果要使用 Coldfusion 动态更改显示的内容,则必须向 Coldfusion 页面发出 HTTP 请求。您可以通过多种方式执行此操作,但最简单的方法是使用表单提交。为了提交带有 HTML 的表单,您的表单需要三件事:

  1. 将数据发送到(您的 .cfm 页面)的 url,它位于 formaction属性中。
  2. 要使用的 HTTP 方法,在 formmethod属性中。通常,您会使用POST.
  3. 带有的input标签type="submit"。这是用户可以单击以提交表单的提交按钮。

例子:

<form action="myPage.cfm" method="POST">
   <!-- ...form fields go here... -->

   <input type="submit">
</form>

当使用 将表单提交到 Coldfusion 页面action="POST"时,该页面中的 Coldfusion 代码可以使用范围访问提交的表单数据form。例如,您将用于form.active_status从示例中的“active_status”下拉列表中获取数据。

然后,您可以使用此信息来动态确定要在页面上显示的内容。.cfm 页面示例:

<cfif form.active_status is 'ACTIVE'>    
    <div>Status is active</div>
<cfelse>    
    <div>Status is not active</div>
</cfif>

旁注:您不能直接使用 Javascript 与 Coldfusion 进行交互。它们在两台不同机器上的两个不同环境中执行:JS 在客户端的浏览器中,CF 在服务器的 JVM 中。

于 2013-04-30T07:35:56.400 回答