Asp classic 使用Mid函数提交长查询字符串-获取错误,字符串被截断
我有一个页面,用户可以在其中选择许多复选框,然后将他们选择的每个值插入到数据库中。我正在使用querystring将初始页面中的值提交到post页面 这些值是以管道分隔的,并且存储过程会为每个值运行。我还向数据库提交了一个整数 有两个问题-首先,有时我会遇到一个中间的“无效过程调用”错误。还有一些时候,我似乎为QueryString提交了太多的字符,所以它会被截断,并不是所有的值都被提交 感谢您的帮助。谢谢 提交值的主页面-Javascript:Asp classic 使用Mid函数提交长查询字符串-获取错误,字符串被截断,asp-classic,Asp Classic,我有一个页面,用户可以在其中选择许多复选框,然后将他们选择的每个值插入到数据库中。我正在使用querystring将初始页面中的值提交到post页面 这些值是以管道分隔的,并且存储过程会为每个值运行。我还向数据库提交了一个整数 有两个问题-首先,有时我会遇到一个中间的“无效过程调用”错误。还有一些时候,我似乎为QueryString提交了太多的字符,所以它会被截断,并不是所有的值都被提交 感谢您的帮助。谢谢 提交值的主页面-Javascript: function submit() {
function submit()
{
var n = 0;
var stringIDs = "";
//Number of records to submit stored in hidden text box.
for (n=1; n<=parseInt(document.getElementById("txtResultsIndex").value); n++)
{
try
{
var cb = document.getElementById("cbSelection"+n);
if (cb.checked)
{
stringIDs = stringIDs + "|" + document.getElementById("linkNumber"+n).innerText;
}
}
catch(exception)
{}
}
window.open("submit.asp?stringIDs=" + stringIDs + "|&cboResearchedBy=" + document.getElementById("cboResearchedBy").value);
}
函数提交()
{
var n=0;
var stringIDs=“”;
//隐藏文本框中存储的要提交的记录数。
for(n=1;nRemove Mid函数。将值放置在文本框中,以数组形式提交到帖子页面,使用for each循环。页面提交仍需要一些时间,但不会产生错误
vIndex=stripquotes(Request.Form(“txtIndex”))
如果是Request.Form(“cboResearchedBy”)”,那么
vResearchedBy=stripquotes(Request.Form(“cboResearchedBy”))
如果结束
如果是Request.Form(“txtMySeq”)”,那么
txtMySeq=Request.Form(“txtMySeq”)
如果结束
vSeqArray=Split(txtMySeq,“|”)
对于vSeqArray中的每个vSeq
vSQLInsert = "Insert "
vSQLInsert = vSQLInsert & "@vResearchedBy = '" & vResearchedBy & "',"
vSQLInsert = vSQLInsert & "@vSequenceNumber = '" & vSeq & "'"
Response.Write(vSQLInsert)
Set RS = CN.Execute (vSQLInsert)
接下来您的问题太宽泛了。您可以显示错误的复制,这将有助于使您的问题更适合StackOverflow。至于截断-如果您可以访问源代码,请重新编写逻辑以执行常规表单POST,而不是此javascript攻击。Internet Explorer对aro URL的长度有限制und 2000个字符。您的查询字符串(和URL)可能会比这长吗?如果是这样,您将不得不重写为POST而不是GET。
vSQLInsert = "Insert "
vSQLInsert = vSQLInsert & "@vResearchedBy = '" & vResearchedBy & "',"
vSQLInsert = vSQLInsert & "@vSequenceNumber = '" & vSeq & "'"
Response.Write(vSQLInsert)
Set RS = CN.Execute (vSQLInsert)