将ColdFusion输出中的#视为文本而不是变量?

Rio*_*oof 4 coldfusion jquery

我已经制作了一个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>
Run Code Online (Sandbox Code Playgroud)

我将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 -->
Run Code Online (Sandbox Code Playgroud)

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

另外,如果我从学生面前删除#,所有的车牌都显示在列表中,但他们不会带我到我想要到达的学生页面.

use*_*654 14

如您所知,#coldfusion是一个特殊字符,用于包装变量,以便在您进入cfoutput或其他特定标记(如cfmail)内部时输出变量的内容.如果要#在文本中使用,则必须在其#旁边放置第二个权限以逃避它.

<cfoutput>
    the item## is #itemnumber#
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

更进一步,当你在coldfusion标签的属性中时,你可以使用""在coldfusion标签的属性"中的字符串内进行转义.

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

<cfoutput query="q_sample" >
        <li><a href='##Student'>#q_sample.license#</a></li>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

或这个:

<cfloop query="q_sample" >
        <li><a href='#Student'><cfoutput>#q_sample.license#</cfoutput></a></li>
</cfloop>
Run Code Online (Sandbox Code Playgroud)

注意,我添加q_sample到变量名称,因为这是一个很好的做法.