Sql 经典ASP通过AJAX更新数据

Sql 经典ASP通过AJAX更新数据,sql,ajax,asp-classic,Sql,Ajax,Asp Classic,嘿,所有我正在试图找出如何去更新我的当前代码,使我不必刷新页面这样做 然而,考虑到我的asp代码是如何布局的,我不确定如何做到这一点 我的示例代码是: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% Dim Connection Dim ConnString Dim Recordset Dim row1(11) Dim row2(11) Dim row3(11) ... Dim row29(11) Dim intX Dim shift(

嘿,所有我正在试图找出如何去更新我的当前代码,使我不必刷新页面这样做

然而,考虑到我的asp代码是如何布局的,我不确定如何做到这一点

我的示例代码是:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Dim Connection
Dim ConnString
Dim Recordset
Dim row1(11)
Dim row2(11)
Dim row3(11)
...
Dim row29(11)
Dim intX
Dim shift(19)

ConnString="DRIVER={SQL Server};SERVER=xxxxx;UID=xxxxx;PWD=xxxxxxx;DATABASE=rtd"
SQL = "SELECT * FROM dbo.RTDtable ORDER BY ID"

Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")

Connection.Open ConnString
Recordset.Open SQL,Connection

If Recordset.EOF Then
    Response.Write("No records returned.")
Else
    intX = 0

    Do While NOT Recordset.Eof   
        row1(intX) = Recordset("Production_Date")
        row2(intX) = Recordset("GroupID")
        row3(intX) = Recordset("Shift")
        row4(intX) = Recordset("Shift_Name")
        row5(intX) = Recordset("Full_Shift")
        row6(intX) = Recordset("Stn_ID")
        row7(intX) = Recordset("Stn_ID2")
        row8(intX) = Recordset("Point_Name")
        row9(intX) = Recordset("Bucket_1")
        row10(intX) = Recordset("Bucket_2")
        row11(intX) = Recordset("Bucket_3")
        row12(intX) = Recordset("Bucket_4")
        row13(intX) = Recordset("Bucket_5")
        row14(intX) = Recordset("Bucket_6")
        row15(intX) = Recordset("Bucket_7")
        row16(intX) = Recordset("Bucket_8")
        row17(intX) = Recordset("Bucket_9")
        row18(intX) = Recordset("Bucket_10")
        row19(intX) = Recordset("Bucket_11")
        row20(intX) = Recordset("Bucket_12")
        row21(intX) = Recordset("Bucket_13")
        row22(intX) = Recordset("Bucket_14")
        row23(intX) = Recordset("Bucket_15")
        row24(intX) = Recordset("Bucket_16")
        row25(intX) = Recordset("Bucket_17")
        row26(intX) = Recordset("Bucket_18")
        row27(intX) = Recordset("Bucket_19")
        row28(intX) = Recordset("Bucket_20")
        row29(intX) = Recordset("Total")

        intX = IntX + 1
        Recordset.MoveNext
    Loop
End If

Recordset.Close
Set Recordset=nothing
Connection.Close
Set Connection=nothing
%>

在调用之后,我这样做是为了将其插入到表中:

<tr>
    <td class="tableHeading">1680-1L</td>
    <td valign="bottom"><span id="ctl00_ContentPlaceHolder1_dgDetails_ctl06_lblDowntime"></span></td>
    <td align="left" class="fontSizes">ACTUAL</td>
    <td align="right"><% response.write row9(1) %></td>
    <td align="right"><% response.write row10(1) %></td>
    <td align="right"><% response.write row11(1) %></td>
    <td align="right"><% response.write row12(1) %></td>
    <td align="right"><% response.write row13(1) %></td>
    <td align="right"><% response.write row14(1) %></td>
    <td align="right"><% response.write row15(1) %></td>
    <td align="right"><% response.write row16(1) %></td>
    <td align="right"><% response.write row17(1) %></td>
    <td align="right"><% response.write row18(1) %></td>
    <td align="right"><% response.write row19(1) %></td>
    <td align="right"><% response.write row20(1) %></td>
    <td align="right"><% response.write row21(1) %></td>
    <td align="right"><% response.write row22(1) %></td>
    <td align="right"><% response.write row23(1) %></td>
    <td align="right"><% response.write row24(1) %></td>
    <td align="right"><% response.write row25(1) %></td>
    <td align="right"><% response.write row26(1) %></td>
    <td align="right"><% response.write row27(1) %></td>
    <td align="right"><% response.write row28(1) %></td>
    <td align="right"><% response.write row29(1) %></td>
  </tr>
  <tr>
    <td></td>
    <td valign="bottom"></td>
    <td align="left" class="fontSizes">TARGET</td>
    <td align="right"><% response.write row9(2) %></td>
    <td align="right"><% response.write row10(2) %></td>
    <td align="right"><% response.write row11(2) %></td>
    <td align="right"><% response.write row12(2) %></td>
    <td align="right"><% response.write row13(2) %></td>
    <td align="right"><% response.write row14(2) %></td>
    <td align="right"><% response.write row15(2) %></td>
    <td align="right"><% response.write row16(2) %></td>
    <td align="right"><% response.write row17(2) %></td>
    <td align="right"><% response.write row18(2) %></td>
    <td align="right"><% response.write row19(2) %></td>
    <td align="right"><% response.write row20(2) %></td>
    <td align="right"><% response.write row21(2) %></td>
    <td align="right"><% response.write row22(2) %></td>
    <td align="right"><% response.write row23(2) %></td>
    <td align="right"><% response.write row24(2) %></td>
    <td align="right"><% response.write row25(2) %></td>
    <td align="right"><% response.write row26(2) %></td>
    <td align="right"><% response.write row27(2) %></td>
    <td align="right"><% response.write row28(2) %></td>
    <td align="right"><% response.write row29(2) %></td>
  </tr>
  <tr>
etc etc

1680-1L
实际的
目标
等等
既然html代码中有AJAX,我该如何通过AJAX进行更新呢

谢谢你抽出时间

大卫

获取示例:

$.get('resultPage.asp', function(data) { 
  // Extract just the HTML for the table 
  var ixTableStart = data.indexOf('<td', data.indexOf('id="Row9-1"')); 
  var ixTableEnd = data.indexOf('</td>', ixTableStart) + 8; 
  var resultTableHtml = data.substring(ixTableStart, ixTableEnd); 
  $('.Row9-1).html(resultTableHtml); 

etc etc...
}); 

 <tr>
    <td class="tableHeading">1680-1L</td>
    <td valign="bottom"><span id="ctl00_ContentPlaceHolder1_dgDetails_ctl06_lblDowntime"></span></td>
    <td align="left" class="fontSizes">ACTUAL</td>
    <td align="right" id="row9-1">51</td>
    <td align="right" id="row10-1">10</td>
    <td align="right" id="row11-1">16</td>
    etc.....
 <tr>
    <td></td>
    <td valign="bottom"></td>
    <td align="left" class="fontSizes">TARGET</td>
    <td align="right" id="row9-2">5</td>
    <td align="right" id="row10-2">16</td>
    etc...
$.get('resultPage.asp',函数(数据){
//只提取表的HTML

var ixTableStart=data.indexOf(“如果我正确理解您的问题,您所做的就是刷新页面,特别是通过单击按钮或通过
setInterval
javascript方法刷新表中显示的结果。
假设您的结果
位于
或具有
id
属性
resultPanel
和数字的类似容器元素中,则可以使用以下内容:

$.get('resultPage.asp', function(data) {
  FillResultPanel("resultPanel1");
  FillResultPanel("resultPanel2");
  FillResultPanel("resultPanel3");
  FillResultPanel("resultPanel4");
});
function FillResultPanel(panelId) {
  // Extract just the HTML for the table
  var ixTableStart = data.indexOf('<table', data.indexOf('id="' + panelId + '"'));
  var ixTableEnd = data.indexOf('</table>', ixTableStart) + 8;
  var resultTableHtml = data.substring(ixTableStart, ixTableEnd);
  $('#' + panelId).html(resultTableHtml);
}
$.get('resultPage.asp',函数(数据){
FillResultPanel(“resultPanel1”);
FillResultPanel(“resultPanel2”);
FillResultPanel(“resultPanel3”);
FillResultPanel(“resultPanel4”);
});
函数FillResultPanel(面板ID){
//只提取表的HTML

var ixTableStart=data.indexOf(“如果我正确理解您的问题,您所做的就是刷新页面,特别是通过单击按钮或通过
setInterval
javascript方法刷新表中显示的结果。
假设您的结果
位于
或具有
id
属性
resultPanel
和数字的类似容器元素中,则可以使用以下内容:

$.get('resultPage.asp', function(data) {
  FillResultPanel("resultPanel1");
  FillResultPanel("resultPanel2");
  FillResultPanel("resultPanel3");
  FillResultPanel("resultPanel4");
});
function FillResultPanel(panelId) {
  // Extract just the HTML for the table
  var ixTableStart = data.indexOf('<table', data.indexOf('id="' + panelId + '"'));
  var ixTableEnd = data.indexOf('</table>', ixTableStart) + 8;
  var resultTableHtml = data.substring(ixTableStart, ixTableEnd);
  $('#' + panelId).html(resultTableHtml);
}
$.get('resultPage.asp',函数(数据){
FillResultPanel(“resultPanel1”);
FillResultPanel(“resultPanel2”);
FillResultPanel(“resultPanel3”);
FillResultPanel(“resultPanel4”);
});
函数FillResultPanel(面板ID){
//只提取表的HTML


var ixTableStart=data.indexOf(“你是在寻找基本的javascript解决方案,还是包括框架的东西,比如jQuery,可以接受?好的,下一个问题。你在更新什么?你只是在更新表中显示的值?或者用户有一些数据要更新回服务器?AJAX应该做些什么?@GuthMD:It’s all static dat从存储过程调用的。因此,我所需要做的就是调用SP并在表中显示新的数据量。因此,您正在尝试每行更新一次?恐怕我对这个问题感到困惑。您能否给出一个示例用例?例如,用户浏览结果页面,然后用户…刷新页面?转到不同的r页面esults?现在你只需要刷新页面就可以得到更新的值。我不想这样做,而是希望它在幕后进行,而不需要刷新页面。你是在寻找基本的javascript解决方案,还是可以接受包含框架的解决方案,比如jQuery?好的,下一个问题。你在更新什么?你在e只是更新表中显示的值?或者用户有一些数据要更新回服务器?AJAX应该做什么?@GuthMD:所有的静态数据都是从存储过程调用的。所以我需要它做的就是调用SP并在表中显示新的数据量。所以,您正试图每一个ro更新一次w?恐怕我对这个问题感到困惑。你能给出一个示例用例吗?例如,用户浏览你的结果页面,然后用户…刷新页面?转到一个包含不同结果的页面?现在你只需要刷新页面以获得更新的值。我希望它在幕后进行,而不需要重新定义esh页面。嗯……这代表rowX(X)吗表中的数字?所做的只是在异步get请求中再次获取页面,然后用刷新的页面替换现有的表标记。您是否需要更改行,或者以任何其他方式修改页面上显示的结果?那么您是说代码只是在HTML中注入完整的表结构?因此resultPage.asp页面将只包含获取sp的代码以及表的HTML?然后jquery将其“获取”的所有HTML表数据放入进入找到标签的主页?@StealthRT是的。这与从浏览器刷新基本相同,只是它只更新结果表,并通过AJAX进行更新,以防止和重新加载。我是否正确理解了这个问题?此外,您需要用您的名称替换
resultPage.asp
当前asp页面。我上面发布的所有代码都只在一个页面上。是否可以为表中每个包含数据的部分指定一个ID,然后在jQuery中调用该ID并插入它从GET中获得的数据?嗯……这是否表示rowX(X)表中的数字?所做的只是在异步get请求中再次获取页面,然后用刷新的页面替换现有的表标记。您是否需要更改行,或者以任何其他方式修改页面上显示的结果?那么您是说代码只是在HTML中注入完整的表结构?因此resultPage.asp页面将只有获取sp的代码以及表格的HTML?然后jquery将它“获取”的所有HTML表格数据放在主页面中,在主页面中找到标记?@StealthRT对。它本质上与从浏览器刷新相同,只不过它只更新结果表,并且这样做