使用ASP将查询结果插入到javascript数组中

时间:2012-02-22 19:18:16

标签: javascript asp-classic

我想将查询结果插入到javascript数组中。

我有一个问题:结果可能是HTML标签,所以我尝试编码字符串。 但它不起作用。

这是我的代码:

Response.Write "<script type='text/javascript'>"& vbCrLf
Response.Write "var myArr = new Array();"
z=0     
Do While not rsScadenze.EOF


If (rsScadenze("scadenza")<> "") Then

    encodeString =Server.HtmlEncode(rsScadenze("testo"))

    Response.Write "myArr["& z &"]=('"& encodeString &"');"& vbCrLf

    z=z+1

End If
rsScadenze.MoveNext
Loop

Response.Write "</script>"
rsScadenze.close

我该怎么办?

感谢您的帮助

感谢您的准确答案。 我做了改动,但它仍然不起作用,我疯了。 HTML不会生成任何内容,只会生成没有错误的空白页。 所以我查看了我的代码生成的页面源代码:

<script>
var myArr = new Array();
myArr[0]=('&lt;div style=&quot;text-align: justify&quot;&gt;&lt;span style=& quot;font-size: 11pt&quot;&gt;Per i contribuenti che effettuano operazioni con operatori economici aventi sede, residenza o domicilio negli Stati o territori dei Paesi c.d. &amp;ldquo;&lt;i&gt;black-list&lt;/i&gt;&amp;rdquo; scade oggi il termine di presentazione degli elenchi riepilogativi delle operazioni effettate nel mese precedente, per i contribuenti tenuti a questo adempimento con cadenza mensile.&lt;/span&gt;&lt;/div&gt;');
document.write (myArr[0]);
... and so on, until the last element of my array

我试图改变encodeString的内容,手动编写一个字符串(encodeString =“...”),在这种情况下,代码运行良好。

为什么?

非常感谢

2 个答案:

答案 0 :(得分:0)

您还需要引用数组元素名称:

Response.Write "myArr['"& z &"']=('"& encodeString &"');"& vbCrLf

答案 1 :(得分:0)

尝试一些事情......

首先,将以[script]开头的字符串分解为类似

的字符串

response.write "<scr" & "ipt" & ...

asp不喜欢看到“&lt; script&gt;”这个词正在回复。写作!

对更近的人做同样的事情

response.write "</sc" & "ript>"

使用脚本和/脚本会混淆asp.dll。

这是一个通用的提示,因此总是以我的建议方式进行。

关于你的代码,你可以试试这个;

变化 if rsScadenze("scadenza")<> "") Then

if "" & rsScadenze("scadenza")<> "" ) Then 这样,你也可以捕获空值

变化 encodeString =Server.HtmlEncode(rsScadenze("testo"))encodeString = Server.HtmlEncode(rsScadenze("testo"))

encodeString = replace(encodeString,vbcrlf," ",1,-1,1)

encodeString = replace(encodeString,vbcr," ",1,-1,1)

encodeString = replace(encodeString,vblf," ",1,-1,1)

`'以上3行将解决换行问题

encodeString = replace(encodeString,"""","&quot;",1,-1,1)

'the above line would take care of any occurrences of "

你的其余代码看起来很好......

尝试这些建议并告诉我们,但这次包括生成的html(或错误)。

HTH