我正在尝试编写ColdFusion代码运行查询然后将结果放入一个特定格式的数组中。
查询:
<cfquery name="get_cbox" datasource="ds" username="un" password="pw">
SELECT CBOXADD, MFLPU, SATLPU, BOXTYPE
FROM myTable
</cfquery>
和包含1个元素的数组如下所示:
<script type="text/javascript">
var addresses = [{ name: "<table width=100% style='font-size:14px'><td rowspan='3'>OBS:1</td><tr><td>"#cboxadd#"</td><td align='right'>LPU M-F: "#mflpu#"</td></tr><tr><td>Barrigada Guam, 96910 ("#boxtype#")</td><td align='right'>LPU Sat: "#satlpu#"</td></tr></table>", to: #cboxadd#", Barrigada Guam, 96910" }];
</script>
我如何做到这一点?
答案 0 :(得分:2)
从我看到你的对象看起来错了,但我不确定你在做什么,所以我不确定如何使它适合你,所以我只是有一个较小的例子。
<cfquery name="get_cbox" datasource="ds" username="un" password="pw">
SELECT CBOXADD, MFLPU, SATLPU, BOXTYPE
FROM myTable
</cfquery>
<cfset arrString = "">
<cfloop from="1" to="get_cbox.recordcount" index="i">
<cfset arrString = listAppend(arrString,"{'name':'#get_cbox.CBOXADD[i]#','type':'#get_cbox.BOXTYPE[i]#'}")>
</cfloop>
<cfoutput>
<script type="text/javascript">
var addresses = [#arrString#];
</script>
</cfoutput>
这将构建一个对象数组,每个对象都有属性“name”和“type”,其中包含从查询中填充的值。
答案 1 :(得分:1)
您可以在CF8或CF9中尝试serializeJSON函数,它将获取任何ColdFusion对象并将其转换为可用的JSON字符串。然后可以在JavaScript函数中使用它。
答案 2 :(得分:1)
扩展丹说我会做这样的事情(假设你没有使用CFC):
<cfquery name="get_cbox" datasource="ds" username="un" password="pw">
SELECT CBOXADD, MFLPU, SATLPU, BOXTYPE
FROM myTable
</cfquery>
<cfset myStruct = parseQuery(get_cbox)>
<cfset pageJSON = SearilizeJSON(myStruct)>
<cffunction name="parseQuery" output="struct">
<cfargument name="query" type="query">
<cfset var html = "">
<cfset var retStruct = StructNew()>
<cfloop query="#arguments.query#">
<cfset html = "<table width=100% style='font-size:14px'><td rowspan='3'>OBS:1</td><tr><td>"#cboxadd#"</td><td align='right'>LPU M-F: "#mflpu#"</td></tr><tr><td>Barrigada Guam, 96910 ("#boxtype#")</td><td align='right'>LPU Sat: "#satlpu#"</td></tr></table>">
<cfset retStruct.name = htnml>
<cfset retStruct.to = CBOXADD>
</cfloop>
<cfreturn returnStruct>
</cffunction>
由于我很长时间没有使用标签,因此代码中可能会出现一些语法错误,但您应该了解我在这里要完成的工作。首先,我们将创建一个函数来将查询的输出解析为结构,然后我们将该结构传递给searalizeJSON,这将为您提供格式良好的JSON对象(请注意,调用后键的大小写可能会有所不同) searilizeJSON)。然后,您在页面上所要做的就是:
<script type="text/javascript">
var addresses = #pageJSON#;
for(var i=0;i<addresses.length;i++){
addresses[i].html....
addresses[i].name....
}
</script>