首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过滤cfquery结果

过滤cfquery结果
EN

Stack Overflow用户
提问于 2011-06-04 01:34:51
回答 3查看 1.2K关注 0票数 1

我正在编辑已经存在的代码,这就是为什么这个问题是这样形成的。我正在尝试使用一个已经存在的查询,并且没有通过url添加更多的表单变量。

所以我的问题是:我有一个正在运行的查询,这个查询被用来填充页面上的两个下拉列表。一个列表是操作状态,另一个是操作的实际站点。在页面的开始,我希望下拉有不同的结果从查询,目前它是显示120+ 'AL‘80+ 'MN’等。另外,我希望第二个下拉只有结果有特定的状态作为他们的状态。

我知道我可以通过添加更多的查询和一个表单变量来做到这一点,但我想知道是否有一种方法可以只在cfquery中过滤结果。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-04 02:05:53

这是我会做的。首先只显示状态下拉列表。

使用一些示例代码可能会更容易,但这里有一个示例。我还没有尝试过,但应该是一个不错的开始。永远不会记得如何将选择重新设置为无选择...

第一个下拉菜单

代码语言:javascript
复制
<cfoutput group= "state">
<option value= "#state#">#state#</option>
</cfoutput>

第二个下拉列表

代码语言:javascript
复制
<cfoutput group= "state" style= "display: none;">
<select id= "#site#" class= "site">
<option>Select a Site</option>
<cfoutput>
<option value= "#site#">#site#</option>
</cfoutput>
</select>
</cfoutput>

添加一些JavaScript...

代码语言:javascript
复制
$( "#state" ).change( function() {

$( ".site" ).each( function() {
$( this ).selected( '' ).hide();

} );

$( "select[id=" + $( this ).val() + "]" ).show();


} );
票数 1
EN

Stack Overflow用户

发布于 2011-06-04 03:52:09

在第一个下拉列表的另一个答案上+1 -只对输出进行分组(确保查询的顺序正确)。

对于第二个下拉列表-使用cfselect并查看bind属性-您可以将其“绑定”到第一个下拉列表。

票数 0
EN

Stack Overflow用户

发布于 2011-06-05 00:35:21

这在很大程度上取决于您特定的数据库设计...(这里有MySQL示例... )但是,完全假设您有一个字段将作为PK来定义站点位置,例如ZipCode (我在这里使用...)您可以简单地将cfquery转储到一个数组中,然后遍历该数组以获得结果……

代码语言:javascript
复制
    <cffunction name="getDistinct" access="public" returntype="array" hint="Displays a Single Entry based on the ZipCode for this demo ...">

         <cfargument name="ZipCode" required="true" type="string" />

            <cfset var q = "">  
             <cfset var result = arrayNew(2)>
            <cfset i=0> 

            <cfquery name="q" datasource="#variables.dsn#" username="#variables.username#" password="#variables.password#">
                SELECT DISTINCT Site, SiteName, State, ZipCode
                FROM `THETABLE`
                WHERE ZipCode = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.ZipCode#" maxlength="10">
                ORDER BY Site ASC
            </cfquery>

                <cfloop index="i" from="1" to="#q.RecordCount#">
                <cfset result[i][1] = q.ZipCode[i]>
                <cfset result[i][2] = q.Site[i]>
            </cfloop>  

            <cfreturn >
    </cffunction>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6230592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档