根据下拉变化数据输出

时间:2013-04-29 18:12:09

标签: javascript coldfusion onclick

我是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时仍然没有改变?

1 个答案:

答案 0 :(得分:1)

  

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

通过使用Javascript刷新页面而不进行任何AJAX调用或首先提交表单,您只需重新加载页面并重置客户端表单数据。数据无处可去 - 没有任何内容发送到服务器。

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

  1. 将数据发送到(您的.cfm页面)的网址,其格式为action
  2. 要使用的HTTP方法,其格式为method。通常,您使用POST
  3. input标记type="submit"。这是用户可以单击以提交表单的提交按钮。
  4. 示例:

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

    当使用action="POST"将表单提交到Coldfusion页面时,该页面中的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中。