4

我已经制作了一个 JQuery 列表,我想用数据库中的车牌号填充它,为此,我创建了一个新的 cfm 文件并让它在 html 中输出我想要的内容,这样我以后就可以像这样转换它:

setPlates.cfm

<cfquery name="q_sample" datasource="cars_live">
  SELECT LICENSE FROM veh_rec 
</cfquery>

<cfoutput query="q_sample" >
        <li><a href='#Student'>#license#</a></li>
</cfoutput>

我调用 get 函数进入 setPlates.cfm 文件,这样我就可以将数据库中的车牌作为项目添加到我的列表中。代码如下:

<div class="ui-grid-solo">
            <div class="ui-block-a"><br></div>
            <div class="ui-block-a"><ul id="plates" data-role="listview" data-inset="true" data-filter="true" data-filter-reveal="true" data-filter-placeholder="Filter Students">
            <script type="text/javascript">
            $.get("setPlates.cfm")
                .done(function(data) {
                  $("#plates").html(data);
                });
                </script>
                <div id="plates"></div>
            </ul></div>
        </div><!-- /grid solo -->

问题是,当它转到那个新文件并开始读取输出时,#Student 会混淆它,因为它试图将它作为数据库中的变量读取。#Student 是一个将页面更改为新页面的调用,该页面将根据选择的车牌列出学生信息(例如他们是否拥有停车许可证)。有没有办法让它把那个井号当作文本,而不是像#license#这样的开头?有点像你会做 \" 在java中的字符串中使用引号?

此外,如果我从学生前面删除 #,所有车牌都会显示在列表中,但它们不会将我带到我想要访问的学生页面。

4

3 回答 3

14

如您所知,#coldfusion 是一个特殊字符,用于包装变量,以便在您位于 cfoutput 或其他特定标签(例如 cfmail)内部时输出变量的内容。如果你想在你的文本中使用,你必须通过在它旁边#放置第二个来转义它。#

<cfoutput>
    the item## is #itemnumber#
</cfoutput>

更进一步,当您在冷融合标签的属性中时,您可以使用在冷融合标签的属性中的字符串内""转义。"

在你的情况下,我会这样做:

<cfoutput query="q_sample" >
        <li><a href='##Student'>#q_sample.license#</a></li>
</cfoutput>

或这个:

<cfloop query="q_sample" >
        <li><a href='#Student'><cfoutput>#q_sample.license#</cfoutput></a></li>
</cfloop>

注意,我添加q_sample了变量名,因为这是一个好习惯。

于 2013-05-31T21:18:20.223 回答
2

##当您在块内时使用<cfoutput>以转义哈希字符。

于 2013-05-31T21:17:45.413 回答
1

您需要使用另一个井号 ( ##student) 转义井号,因为正如您所发现的,井号在<cfoutput>标签中具有特殊含义。

于 2013-05-31T21:17:52.953 回答