我是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时仍然没有改变?
答案 0 :(得分:1)
我认为这样做的方法是创建一个名为Active_status的变量,然后使用Onclick更改值并刷新页面。
通过使用Javascript刷新页面而不进行任何AJAX调用或首先提交表单,您只需重新加载页面并重置客户端表单数据。数据无处可去 - 没有任何内容发送到服务器。
如果要动态更改使用Coldfusion显示的内容,则必须向Coldfusion页面发出HTTP请求。您可以通过各种方式执行此操作,但最简单的方法是使用表单提交。要提交包含HTML的表单,您的表单需要三件事:
action
。method
。通常,您使用POST
。input
标记type="submit"
。这是用户可以单击以提交表单的提交按钮。示例:
<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中。