在cfsearch结果中呈现db列

时间:2011-02-08 20:44:01

标签: coldfusion

下面是执行索引的代码,以及读取

的cfsearch代码

索引:

<cfquery name="Qryname" datasource="dsnnane">
SELECT id, eid, title
FROM tbl1
</cfquery>

<cfindex  
    query="Qryname" 
    collection="events" 
    action="Update" 
    type="Custom" 
    title="title" 
    key="id" 
    body="eid,title">

搜索结果

    <cfsearch   
    collection="events" 
    name="Qryname" 
    criteria="#Form.Criteria#"> 

    <!--- Output the record set. ---> 
    <cfoutput> 
    Your search returned #Qryname.RecordCount# result(s). 
    </cfoutput> 

    <cfoutput query="Qryname"> 
    <a href="page.cfm?eid=#eid#">#title#</a>

    </cfoutput>

问题是我只能输出我在cfindex中指定为标题的列。如果我尝试输出除了我指定为标题之外的任何其他列,系统会说var是未定义的。

在这种情况下,它表示eid未定义。

我在文档中看到可以输出列值

请参阅“搜索并显示查询结果”中的第3部分,该部分位于“查询返回的索引数据”下

http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-7b35.html

有什么想法吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

我开始做:

<cfdump var="#Qryname#" />

查看从cfsearch返回的内容。

答案 1 :(得分:1)

解决方案是使用cfindex中的自定义字段。如果您阅读cfindex的参考号,您将看到它最多支持4个自定义字段,范围从custom1到custom4。

只需将db表列分配给其中一个自定义字段,重新编制索引,然后访问cfsearch中的自定义字段

<cfindex  
    query="Qryname" 
    collection="events" 
    action="Update" 
    type="Custom" 
    title="title" 
    key="id" 
    body="eid,title"
    custom1="eid">

cfsearch:

<cfoutput query="Qryname"> 
<a href="page.cfm?eid=#custom1#">#title#</a>
</cfoutput>