Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在打印Javascript而不是ASP(经典)输出_Javascript_Asp Classic - Fatal编程技术网

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

正在打印Javascript而不是ASP(经典)输出,javascript,asp-classic,Javascript,Asp Classic,我试图创建一个页面,列出记录,并允许显示一个表单来编辑值。它会重新加载页面,并在末尾添加“?edit=true”,以便知道如何将数据拉入表单,而不是列出所有条目。我是在把它装进一个iframe来替换身体坏了之后做的。我以一种完全相同的方式以不同的形式做到了这一点——只是它起了作用。(实际上,我有两个函数显示一个表单,只有1个函数会显示) 我得到的不是表单的输出是 }捕获(e){警报(e);} 这是最后加载的底部: <script type="text/javascript">

我试图创建一个页面,列出记录,并允许显示一个表单来编辑值。它会重新加载页面,并在末尾添加“?edit=true”,以便知道如何将数据拉入表单,而不是列出所有条目。我是在把它装进一个iframe来替换身体坏了之后做的。我以一种完全相同的方式以不同的形式做到了这一点——只是它起了作用。(实际上,我有两个函数显示一个表单,只有1个函数会显示)

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

}捕获(e){警报(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>

试一试{
document.getElementById(“viewb”).style.display=“无”;
document.getElementById(“reviewb”).style.display=“无”;
document.getElementById(“editb”).style.display=“无”;
document.getElementById(“reeditb”).style.display=“无”;
document.getElementById(“delb”).style.display=“无”;
document.getElementById(“面板”).innerHTML=“”;
}捕获(e){
警报(e);
}
这是第一个定义的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()%>";
document.getElementById("panel").innerHTML = "&lt;table&gt;...&lt;/table&gt;";
更新:在showAScreen中,执行以下操作:

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

您是否尝试过检查正在输出的数据?它可能含有“非法”字符。。ie可能导致html无效的内容(例如“,”)。请尝试生成一些模拟数据,您知道这些数据是正确的,并将其输出。还请搜索“SQL注入攻击”。如果用户要在其中构造包含“edit=”的URL,会发生什么情况;删除ReportingDEVDB.dbo.bAssociateRoster--“?始终使用参数化查询。根据霍尔格的建议,将代码移动到它自己的页面。它在那里工作。只是不在它所属的页面中。@AnthonyWJones我还没有做到这一点,而且该页面是intranet。我认为用“”替换'是可行的。。但我找不到足够的证据。我一直否认任何包含sql关键字的内容。”字符串。我昨天所做的更改之一是检查删除它们是否有效。我将它们放回…它仍然不起作用。分离代码,让showAScreen返回字符串,然后输出该字符串。如果发布的代码是实际代码,请尝试以下操作:从showAScreen返回字符串,然后返回Response.write“document.getElementById('panel')).innerHTML=showAScreen()将showedits()更改为函数并执行了该操作。它起作用了!非常感谢。欢迎光临。我无数次地发现自己处于类似的情况,我发现一条金科玉律是,当关注点分离时,更容易注意到问题。祝你好运
Response.write "document.getElementById('panel').innerHTML = """ & showAScreen() & """"