asp(活动服务器页面)回发到表单锚点
asp (active server pages) postback goes to a form anchor
我知道在 2017 年使用 ASP(活动服务器页面)有点老旧,但我的客户网站是在 asp 中构建的,他不想更改它。
他让我做一个你可以在这里看到的表格
http://www.preventys.net/shopquizz.asp
表格效果很好。
我的问题是回发功能。
回发时,我需要 window 转到选中的字段,而不是 return 到页面顶部。
例如,您可以转到表单中的最后一条记录并检查是或否,它将作为回发重新加载,但您将被发送到页面顶部。
这里是完整的代码
<%
Dim header : header = getlang("FDC002")
setsess "currenturl" , "shopquizz.asp"
'
'dim customerid : CustCheckAdmin customerid
'
dim strsubject
dim customeradmin, custid
Dim sAction, dbtable
dim strcomment
dim qID
dim sx
'
dim qc,qrev
'
Dim StrQQ_(17)
Dim StrQR_(17)
Dim StrQL_(17)
'
Dim StrQREV_(17)
Dim StrQREV_VAL_(17)
'
Dim StrQuestionLabel(17)
Dim StrQuestionHelp(17)
Dim StrQtc(17), StrQtc_Total
'
Dim Serror_q(17)
Dim Serror_rev(17)
Dim StrQuizzResult, StrRevQuizzResult, StrTotalPoints
'
sAction = Request("Action")
if saction = "" then
sAction = Request("Action.x")
end if
'
Serror = ""
'
' AFFICHAGE DU SITE
ShopPageHeader "ContentPageContact"
'
putMyTitle "Répondez à notre questionnaire pour savoir si votre entreprise est conforme aux lois en vigueur"
'
if sAction = "" then
DisplayForm
else
ValidateData()
if sError = "" then
Add_Quizz_to_Database
WriteInfo "<h3>Merci d'avoir répondu au questionnaire.</h3><h3>Vous recevrez dans quelques minutes un diagnostique de conformité de votre établissement.</h3>" , ""
SendMailTo_Merchant_Customer qid
else
shopwriteError SError
%><br /><%
DisplayForm
end if
end if
ShopPageTrailer
'
'*************************************************
'Display Form
'*************************************************
Sub DisplayForm()
%>
<form id="Form_ID" name="Form_ID" method="Post" action="<%=getsess("currenturl")%>">
<table border="1" cellpadding="5" cellspacing="2" class="TableContact">
<%
dim qConn, qDBC, qSql, qRs
dim counter : counter = 1
shopopendatabase qdbc
qSQl="Select * from questionnaire order by qid ASC"
Set qrs = qdbc.execute(qsql)
if not qrs.eof then
do while not qrs.eof
StrQuestionLabel(counter) = qrs("question_label")
StrQuestionHelp(counter) = qrs("question_help")
' questions principales
%>
<tr>
<td align="cennter" valign="middle"><h3><%=qrs("qid")%></h3></td>
<td width="15" align="cennter" valign="middle" style="cursor:pointer;" onClick="__TOGGLESHOWHIDE('explain_<%=qrs("qid")%>');"><img title="Cliquez ici pour en savoir plus" src="icons/icon_orders_info.png" width="15" height="15" align="absmiddle" alt="" border="0"></td>
<td width="100%">
<%= Serror_q(counter)%>
<h3><%=StrQuestionLabel(counter)%></h3>
<input type="hidden" name="QL_<%=qrs("qid")%>" value="<%=StrQuestionLabel(counter)%>">
</td>
<td nowrap><input name="q_<%=qrs("qid")%>" type="radio" value="100" <% if request("q_"& qrs("qid")) = "100" then%> checked <%end if%> onchange="__DOPOSTBACK();">Oui</td>
<td nowrap><input name="q_<%=qrs("qid")%>" type="radio" value="-100" <% if request("q_"& qrs("qid")) = "-100" then%> checked <%end if%> onchange="__DOPOSTBACK();">Non</td>
<%
' personne concernés
Select case qrs("qid")
case "1","2","3","4","13","15","17" %>
<td>Tous concernés <input type="hidden" name="qtc_<%=qrs("qid")%>" value="1"></td>
<% case else %>
<td nowrap>
<select class="selectmultiple" name="qtc_<%=qrs("qid")%>" onchange="__DOPOSTBACK();">
<option value=''>Concerné ?</option>
<option value="1" <% if request("qtc_"& qrs("qid")) = "1" then response.write "selected"%> >Oui</option>
<option value="0" <% if request("qtc_"& qrs("qid")) = "0" then response.write "selected"%> >Non</option>
</select>
</td>
<% end select %>
</tr>
<%
'revision annuelle
Select case qrs("qid")
case "1","16","15"
case else
if request("q_"& qrs("qid")) = "100" then %>
<tr>
<td colspan="2"> </td>
<td bgcolor="#eaeaea" colspan="4"><%= Serror_rev(counter)%>
<font size="2" color=""><b>Revision annuel à jour?</b></font>
<input type="radio" name="qrev_<%=qrs("qid")%>" value="100" <% if request("qrev_"& qrs("qid")) = "100" then%> checked <%end if%> onchange="__DOPOSTBACK();">Oui
<input type="radio" name="qrev_<%=qrs("qid")%>" value="-100" <% if request("qrev_"& qrs("qid")) = "-100" then%> checked <%end if%> onchange="__DOPOSTBACK();">Non
<% end if %>
</td>
</tr>
<% end select %>
<tr><td colspan="6"><div id="explain_<%=qrs("qid")%>" style="display:none;"><%= StrQuestionHelp(counter) %></div></td></tr>
<%
counter = counter + 1
qrs.movenext
loop
end if
qrs.close
set qrs=nothing
shopclosedatabase qdbc
%>
</table>
<table>
<tr>
<td class="ContentContact"><h3>Veuillez recopier le code de sécurité qui s'affiche dans la case ci-contre</h3></td>
<td class="ContentContact"><% CreateSecurityImage "securitynumber" %></td>
</tr>
</table>
<div align="center"><br /><input class="Custsubmitbtn" type="submit" name="action" value="<%=getlang("FDC013")%>"></div>
</form>
<br />
<script language="javascript">
var $ = function (_Id){return document.getElementById(_Id);}
var theForm = document.forms['Form_ID'];
if (!theForm) {theForm = document.Form_ID;}
var __DOPOSTBACK = function(){for (var i=0; i<(arguments.length); i=i+2){$(arguments[i]).value=arguments[i+1];}theForm.submit();}
var __TOGGLESHOWHIDE = function(_obj){$(_obj).style.display=='none'?$(_obj).style.display='block':$(_obj).style.display='none';}
var __HIDDENLISTOJECT = function(){
for (var i=1; i<(arguments.length); i=i+2){$(arguments[i]).checked='';$(arguments[i+1]).style.display='none';}
for (var i=1; i<(arguments.length); i=i+2){$(arguments[i]).checked='';$(arguments[i]).disabled='disabled';}
if($(arguments[0]).style.display!='none')
{
$(arguments[1]).disabled='';
}
}
</script>
<%
End Sub
你可以做一个定位卷轴,http://www.the-art-of-web.com/javascript/remove-anchor-links/#another-heading。
为单选按钮输入和 Id,并将事件作为参数传递给 onChange 侦听器:
<td nowrap><input name="q_<%=qrs("qid")%>" id="id_<%=qrs("qid")%>" type="radio" value="100" <% if request("q_"& qrs("qid")) = "100" then%> checked <%end if%> onchange="__DOPOSTBACK(event);">Oui</td>
<td nowrap><input name="q_<%=qrs("qid")%>" id="id_<%=qrs("qid")%>" type="radio" value="-100" <% if request("q_"& qrs("qid")) = "-100" then%> checked <%end if%> onchange="__DOPOSTBACK(event);">Non</td>
因此,在 onChange 处理程序中,您更改 location.href
var __DOPOSTBACK =
function(event){
var formAction = "preventys.net/shopquizz.asp" + '#' + event.target.id;
theForm.action = formAction;
theForm.submit();
}
我认为这对你有用。
您可以使用如下所示的经典 ASP 服务器端函数:
我知道在 2017 年使用 ASP(活动服务器页面)有点老旧,但我的客户网站是在 asp 中构建的,他不想更改它。
他让我做一个你可以在这里看到的表格 http://www.preventys.net/shopquizz.asp
表格效果很好。
我的问题是回发功能。
回发时,我需要 window 转到选中的字段,而不是 return 到页面顶部。 例如,您可以转到表单中的最后一条记录并检查是或否,它将作为回发重新加载,但您将被发送到页面顶部。
这里是完整的代码
<%
Dim header : header = getlang("FDC002")
setsess "currenturl" , "shopquizz.asp"
'
'dim customerid : CustCheckAdmin customerid
'
dim strsubject
dim customeradmin, custid
Dim sAction, dbtable
dim strcomment
dim qID
dim sx
'
dim qc,qrev
'
Dim StrQQ_(17)
Dim StrQR_(17)
Dim StrQL_(17)
'
Dim StrQREV_(17)
Dim StrQREV_VAL_(17)
'
Dim StrQuestionLabel(17)
Dim StrQuestionHelp(17)
Dim StrQtc(17), StrQtc_Total
'
Dim Serror_q(17)
Dim Serror_rev(17)
Dim StrQuizzResult, StrRevQuizzResult, StrTotalPoints
'
sAction = Request("Action")
if saction = "" then
sAction = Request("Action.x")
end if
'
Serror = ""
'
' AFFICHAGE DU SITE
ShopPageHeader "ContentPageContact"
'
putMyTitle "Répondez à notre questionnaire pour savoir si votre entreprise est conforme aux lois en vigueur"
'
if sAction = "" then
DisplayForm
else
ValidateData()
if sError = "" then
Add_Quizz_to_Database
WriteInfo "<h3>Merci d'avoir répondu au questionnaire.</h3><h3>Vous recevrez dans quelques minutes un diagnostique de conformité de votre établissement.</h3>" , ""
SendMailTo_Merchant_Customer qid
else
shopwriteError SError
%><br /><%
DisplayForm
end if
end if
ShopPageTrailer
'
'*************************************************
'Display Form
'*************************************************
Sub DisplayForm()
%>
<form id="Form_ID" name="Form_ID" method="Post" action="<%=getsess("currenturl")%>">
<table border="1" cellpadding="5" cellspacing="2" class="TableContact">
<%
dim qConn, qDBC, qSql, qRs
dim counter : counter = 1
shopopendatabase qdbc
qSQl="Select * from questionnaire order by qid ASC"
Set qrs = qdbc.execute(qsql)
if not qrs.eof then
do while not qrs.eof
StrQuestionLabel(counter) = qrs("question_label")
StrQuestionHelp(counter) = qrs("question_help")
' questions principales
%>
<tr>
<td align="cennter" valign="middle"><h3><%=qrs("qid")%></h3></td>
<td width="15" align="cennter" valign="middle" style="cursor:pointer;" onClick="__TOGGLESHOWHIDE('explain_<%=qrs("qid")%>');"><img title="Cliquez ici pour en savoir plus" src="icons/icon_orders_info.png" width="15" height="15" align="absmiddle" alt="" border="0"></td>
<td width="100%">
<%= Serror_q(counter)%>
<h3><%=StrQuestionLabel(counter)%></h3>
<input type="hidden" name="QL_<%=qrs("qid")%>" value="<%=StrQuestionLabel(counter)%>">
</td>
<td nowrap><input name="q_<%=qrs("qid")%>" type="radio" value="100" <% if request("q_"& qrs("qid")) = "100" then%> checked <%end if%> onchange="__DOPOSTBACK();">Oui</td>
<td nowrap><input name="q_<%=qrs("qid")%>" type="radio" value="-100" <% if request("q_"& qrs("qid")) = "-100" then%> checked <%end if%> onchange="__DOPOSTBACK();">Non</td>
<%
' personne concernés
Select case qrs("qid")
case "1","2","3","4","13","15","17" %>
<td>Tous concernés <input type="hidden" name="qtc_<%=qrs("qid")%>" value="1"></td>
<% case else %>
<td nowrap>
<select class="selectmultiple" name="qtc_<%=qrs("qid")%>" onchange="__DOPOSTBACK();">
<option value=''>Concerné ?</option>
<option value="1" <% if request("qtc_"& qrs("qid")) = "1" then response.write "selected"%> >Oui</option>
<option value="0" <% if request("qtc_"& qrs("qid")) = "0" then response.write "selected"%> >Non</option>
</select>
</td>
<% end select %>
</tr>
<%
'revision annuelle
Select case qrs("qid")
case "1","16","15"
case else
if request("q_"& qrs("qid")) = "100" then %>
<tr>
<td colspan="2"> </td>
<td bgcolor="#eaeaea" colspan="4"><%= Serror_rev(counter)%>
<font size="2" color=""><b>Revision annuel à jour?</b></font>
<input type="radio" name="qrev_<%=qrs("qid")%>" value="100" <% if request("qrev_"& qrs("qid")) = "100" then%> checked <%end if%> onchange="__DOPOSTBACK();">Oui
<input type="radio" name="qrev_<%=qrs("qid")%>" value="-100" <% if request("qrev_"& qrs("qid")) = "-100" then%> checked <%end if%> onchange="__DOPOSTBACK();">Non
<% end if %>
</td>
</tr>
<% end select %>
<tr><td colspan="6"><div id="explain_<%=qrs("qid")%>" style="display:none;"><%= StrQuestionHelp(counter) %></div></td></tr>
<%
counter = counter + 1
qrs.movenext
loop
end if
qrs.close
set qrs=nothing
shopclosedatabase qdbc
%>
</table>
<table>
<tr>
<td class="ContentContact"><h3>Veuillez recopier le code de sécurité qui s'affiche dans la case ci-contre</h3></td>
<td class="ContentContact"><% CreateSecurityImage "securitynumber" %></td>
</tr>
</table>
<div align="center"><br /><input class="Custsubmitbtn" type="submit" name="action" value="<%=getlang("FDC013")%>"></div>
</form>
<br />
<script language="javascript">
var $ = function (_Id){return document.getElementById(_Id);}
var theForm = document.forms['Form_ID'];
if (!theForm) {theForm = document.Form_ID;}
var __DOPOSTBACK = function(){for (var i=0; i<(arguments.length); i=i+2){$(arguments[i]).value=arguments[i+1];}theForm.submit();}
var __TOGGLESHOWHIDE = function(_obj){$(_obj).style.display=='none'?$(_obj).style.display='block':$(_obj).style.display='none';}
var __HIDDENLISTOJECT = function(){
for (var i=1; i<(arguments.length); i=i+2){$(arguments[i]).checked='';$(arguments[i+1]).style.display='none';}
for (var i=1; i<(arguments.length); i=i+2){$(arguments[i]).checked='';$(arguments[i]).disabled='disabled';}
if($(arguments[0]).style.display!='none')
{
$(arguments[1]).disabled='';
}
}
</script>
<%
End Sub
你可以做一个定位卷轴,http://www.the-art-of-web.com/javascript/remove-anchor-links/#another-heading。
为单选按钮输入和 Id,并将事件作为参数传递给 onChange 侦听器:
<td nowrap><input name="q_<%=qrs("qid")%>" id="id_<%=qrs("qid")%>" type="radio" value="100" <% if request("q_"& qrs("qid")) = "100" then%> checked <%end if%> onchange="__DOPOSTBACK(event);">Oui</td>
<td nowrap><input name="q_<%=qrs("qid")%>" id="id_<%=qrs("qid")%>" type="radio" value="-100" <% if request("q_"& qrs("qid")) = "-100" then%> checked <%end if%> onchange="__DOPOSTBACK(event);">Non</td>
因此,在 onChange 处理程序中,您更改 location.href
var __DOPOSTBACK =
function(event){
var formAction = "preventys.net/shopquizz.asp" + '#' + event.target.id;
theForm.action = formAction;
theForm.submit();
}
我认为这对你有用。
您可以使用如下所示的经典 ASP 服务器端函数: