打印 Javascript 而不是 ASP(经典)输出

标签 javascript asp-classic

我正在尝试制作一个列出记录的页面,并允许显示一个表单来编辑一个值。它重新加载页面,并在末尾添加“?edit=true”,以便它知道将数据拉入表单,而不是列出所有条目。我在将它加载到 iframe 中以替换正文不工作后这样做了。而且我已经设法以完全相同的方式以不同的形式做到这一点 - 除了它有效。 (实际上,我有两个显示表单的函数,只有一个会显示)

我得到的输出而不是表单是

; }catch(e) { alert(e); }

这是最后加载的底部:

    <script type="text/javascript">
        try {

        document.getElementById("viewb").style.display = "none";
        document.getElementById("reviewb").style.display = "none";
        document.getElementById("editb").style.display = "none";
        document.getElementById("reeditb").style.display = "none";
        document.getElementById("delb").style.display = "none";
        document.getElementById("panel").innerHTML = "<%call showAScreen()%>";

        }catch(e) {
            alert(e);
        }
    </script>

这是第一个定义的 asp 函数 - 放在顶部的 JavaScript 函数之后:

<% sub showAScreen()

If Request.QueryString("edit") <> "" Then
    showedits()
else
    showControlScreen()
end if 
end sub %>

剩下的是:

<% sub showedits() 'Show edit record form

        dim selsql
        selsql = ""
        selsql = selsql & "SELECT A.[NBK] as 'NBK ID'"
        selsql = selsql & " ,A.[PersonNumber] as 'Person Number'"
        ...
        selsql = selsql & " ,A.[AOIScore] as 'AOI Score'"
        selsql = selsql & " ,A.[VendorName] as 'Vendor Name'"
        selsql = selsql & "   FROM (([ReportingDevDB].[dbo].[bAssociateRoster] as A left join "
        selsql = selsql & "[ReportingDevDB].[dbo].[bAssociateRoster] as B on A.ManagerNBK = B.NBK) left join"
        selsql = selsql & "[ReportingDevDB].[dbo].[bAssociateRoster] as C on A.TeamLeadNBK = C.NBK)"
        selsql = selsql & " where A.NBK='" & Request.QueryString("edit") & "'"

        on error resume next
        set rs = cnt.execute(selsql)
        dim outstr
        outstr = "<table><tr><td id='content'>"'Frame for code to be pulled from.
        outstr = outstr & "<form id='form' method='post' action='NewRosterManager.asp?selectnbk=" & rs(0) & "&update=true'>"

            outstr = outstr & "<table class='bluetable'>"
            outstr = outstr & "<thead><tr><td colspan='32'>Edit Data</td></tr></thead>"
            outstr = outstr & "<tbody class='list' style='text-align:left'>"
            outstr = outstr & "<tr><td>NBK:</td><td id='RecordNBK'>" & rs(0) & "</td></tr>"
            ...
            outstr = outstr & "<tr><td>Vendor Name:</td><td><input type='text' id='e_VendorName' name='e_VendorName' value='" & rs(25) & "'></td></tr>"
            outstr = outstr & "</tbody></table><input type='submit'></form>"

        outstr = outstr & "</td></tr></table>"'Frame for code to be pulled from.
        Response.write "<br/>" & outstr & "<br/>"

        Response.write selsql 'this doesn't work... can't test query
end sub %>

再次......在过去的一周里,我已经尝试了所有我能想到的方法,但在我的谷歌搜索中我无法远程找到任何类似的东西。我什至无法打印查询。

最佳答案

您生成的应该用引号引起来,如下所示:

document.getElementById("panel").innerHTML = "<%call showAScreen()%>";

注意 <% 和 %> 标签两边的引号。

ASP 将调用 showAScreen 并将其插入到 javascript 的引号中,因此输出将如下所示:

document.getElementById("panel").innerHTML = "&lt;table&gt;...&lt;/table&gt;";

更新:在 showAScreen 中,执行此操作:

return "<br/>" & outstr & "<br/>"

然后

Response.write "document.getElementById('panel').innerHTML = """ & showAScreen() & """"

关于打印 Javascript 而不是 ASP(经典)输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10449845/

相关文章:

javascript - 单击窗口关闭 Canvas 外菜单

php - 无法在弹出窗口中显示图像

javascript - HTML 5视频或音频播放列表

JavaScript - 字符串按位异或?

javascript - 升级 IIS/Classic ASP Javascript/JScript 脚本引擎(到 Chakra?)

javascript - 如何在 javascript 的替换中循环遍历正则表达式的匹配项?

transactions - ASP Classic 中的事务问题

azure - 使用 VSO 和 Azure 网站持续部署经典 ASP

sql-server - 从经典 ASP 连接时 SQL Server 中的应用程序名称

macos - 如何在 Mac OS X 上本地测试 ASP 页面?