2012-02-22 81 views
0

我想将查询的结果插入到JavaScript数组中。插入到JavaScript数组中使用ASP查询的结果

我有一个问题:进入结果可能是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 =“...”),在这种情况下,代码运行良好。

为什么?

非常感谢

+0

http://jsfiddle.net/aURmv/ - 似乎是写作内容。如果你只是空白页面,一定还有其他事情正在进行。 – 2012-02-24 08:22:17

回答

0

尝试一些东西......

第一,打破以[脚本启动串]成这样的东西

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

asp不喜欢看到单词“< script>”被response.written!

做同样的接近

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 "

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

尝试这些建议,让我们知道W,但这次包括生成的HTML(或错误)。

HTH

+0

我修改了我的问题。 – Bellu 2012-02-23 10:20:42

0

您需要引用数组元素的名称,以及:

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

我试过引用数组元素,但它不起作用。可以是Server.HTMLEncode中的错误? – Bellu 2012-02-23 00:24:02