我想将查询结果插入到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]=('<div style="text-align: justify"><span style=& quot;font-size: 11pt">Per i contribuenti che effettuano operazioni con operatori economici aventi sede, residenza o domicilio negli Stati o territori dei Paesi c.d. &ldquo;<i>black-list</i>&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.</span></div>');
document.write (myArr[0]);
... and so on, until the last element of my array
我试图改变encodeString的内容,手动编写一个字符串(encodeString =“...”),在这种情况下,代码运行良好。
为什么?
非常感谢
答案 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,"""",""",1,-1,1)
'the above line would take care of any occurrences of "
你的其余代码看起来很好......
尝试这些建议并告诉我们,但这次包括生成的html(或错误)。
HTH