Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在HTML/ColdFusion中,如何跳转到列表中的某个位置?_Html_Coldfusion_Anchor - Fatal编程技术网

在HTML/ColdFusion中,如何跳转到列表中的某个位置?

在HTML/ColdFusion中,如何跳转到列表中的某个位置?,html,coldfusion,anchor,Html,Coldfusion,Anchor,我使用CFQUERY创建了一个很长的客户列表。我想将列表上方的字母A到Z显示为锚定,选择一个后,转到客户列表上的该位置。我不知道怎么做。有什么建议吗?试试看 <cfquery name="RetrieveNames" datasource="#DataSource#"> SELECT FirstName, LastName FROM tblContacts ORDER BY LastName, FirstName </cfquery> &

我使用CFQUERY创建了一个很长的客户列表。我想将列表上方的字母A到Z显示为锚定,选择一个后,转到客户列表上的该位置。我不知道怎么做。有什么建议吗?

试试看

<cfquery name="RetrieveNames" datasource="#DataSource#">
    SELECT FirstName, LastName FROM tblContacts
            ORDER BY LastName, FirstName
</cfquery>

<cfset LastFirstLetter="">

<cfoutput query="RetrieveNames">
<cfif Left(LastName,1) is not LastFirstLetter>
    <cfset LastFirstLetter = Left(LastName,1)>
    <a href="###LastFirstLetter#">#LastFirstLetter#</a>
</cfif>
</cfoutput>

<hr>

<cfset LastFirstLetter="">

<cfoutput query="RetrieveNames">
<cfif Left(LastName,1) is not LastFirstLetter>
    <cfset LastFirstLetter = Left(LastName,1)>
    <a name="#LastFirstLetter#"></a><b>#LastFirstLetter#</b>
    <hr>
</cfif>
#LastName#, #FirstName#<br>
</cfoutput>
我确实想做一个这样的查询查询

<cfquery name="RetrieveLetters" dbtype="query">
    select substr(LastName,1,1) as FirstLetter
            from RetrieveNames
            group by substr(LastName,1,1)
</cfquery>

但我没法让它发挥作用。但是如果你可以,那么你可以在构建href链接时循环使用它,你就不会有现在不必要的循环。。。也许有人可以改进它

您可以使用SQL LEFT获取姓氏的第一个字母作为查询的一个单独列:

然后,在HTML中输出名称时,可以使用的group属性来处理每个字母

首先制作索引:

<cfoutput query="getCustomers" group="FirstLetter">
  <a href="##Letter#FirstLetter#">#FirstLetter#</a> |
</cfoutput>
这将形成一个如下列表

| | | | ||

其中每个字母都链接到HTML锚定,缺少的字母显然会被跳过,因为查询没有选择它们。我不能让他们在这篇文章上显示正确的锚链接,不知道如何

然后输出名称列表,并在每个组的开头加上锚:

<cfoutput query="getCustomers" group="FirstLetter">
  <a name="Letter#FirstLetter#"><hr /></a>
  <cfoutput><p>#FirstName# #LastName#</p></cfoutput>
</cfoutput>
所以看起来像

约翰·阿达默里·阿伦森·杰克·巴伯·凯特·柯林斯

等等,其中每个硬标尺都是列表锚

你知道“组”属性是如何工作的,是吗?如果没有,就这样

*上面是伪CF,它在查询等方面缺少数据源属性。
我希望它能有所帮助。

这是使用HTML锚定标记完成的。与ColdFusion无关。到目前为止你试过什么?我知道我需要锚定标签,但我不知道如何引导锚定26指向列表中的变化点。谢谢!如果用户选择D,并且没有以D开头的名称,会发生什么情况?对于第一对,我如何指定要搜索的字段?客户端希望能够对两个不同的字段进行排序。只输出您知道将在那里的字母的href,您将在查询中获得该信息-您可以在最初构建href链接时循环该信息。对于第二部分,我不确定你的意思-这不是搜索任何东西-只是跳到页面中的某个位置不要紧。我明白你在说什么了。我需要您提供的所有代码-第一对锚定标记所在的位置,第二对位于列表中。很抱歉这些愚蠢的评论。@RossfromBrooklin我已经更新了我的答案,但这可能需要改进,因为我提到了伟大的解决方案!
<cfoutput query="getCustomers" group="FirstLetter">
  <a name="Letter#FirstLetter#"><hr /></a>
  <cfoutput><p>#FirstName# #LastName#</p></cfoutput>
</cfoutput>