ASP 如何从 HTML 列获取值

ASP How to get a value from HTML column

我有一个 ASP 页面,在查询 SQL 数据库后,它显示 HTML table 中的数据行。返回的行数可能会有所不同。我想添加一个函数,这样当我单击一个按钮时,我会触发对 SQL 服务器数据库的查询以更新该特定行中的列。为此,我将使用结果集中的主键。

我遇到困难的部分是获取正确的行 ID。到目前为止,我所写的内容 returns 每次都使用相同的 ID,无论我单击哪一行。下面的示例代码。

<table>
        <tr>
            <td class="bold" colspan="9"><%=vHeading%></td>
        </tr>
        <tr>
            <td class="tablehead">Id</td>
            <td class="tablehead">WhenPosted</td>
            <td class="tablehead">WhenCreated</td>
            <td class="tablehead">WhenUpdated</td>
            <td class="tablehead">Source</td>
            <td></td>
        </tr>
    <%
    DO WHILE NOT stRs.eof
    i = i + 1
    %>
        <tr>
            <td id="pId<%=i%>" class="tablecell"><%=stRs.fields("Id")%></td>
            <td class="tablecell"><%=stRs.fields("WhenPosted")%></td>
            <td class="tablecell"><%=stRs.fields("WhenCreated")%></td>
            <td class="tablecell"><%=stRs.fields("WhenUpdated")%></td>
            <td class="tablecell"><%=stRs.fields("Source")%></td>
            <td id=<%=i%>><input type="button" value="Post" onclick="post();" /></td>       

        </tr>

        <%
        stRs.MoveNext
    LOOP 
    %>

</table>

<script text="text/javascript">
function post() {
  var pId = document.getElementById("pId").innerHTML;

  alert(pId);
}
</script>

所以我遍历我的结果集创建行。例如,第一行将包含 ID 1。第二行将包含 ID 2 等。 如果我单击触发 post 方法的按钮,无论我单击的是哪一行,警报每次都会显示 ID 1。我猜是因为我最初为每一行的列分配了相同的 ID。我现在使用一个计数器变量并将其分配给现在为列创建唯一 ID 的 ID,但我不确定如何调用该函数并使用正确的 ID。非常感谢任何指点!

您必须将 I 传递给函数:

<input type="button" value="Post" onclick="post(<%=i%>);" />

然后

<script text="text/javascript">
function post(i) {
  var pId = document.getElementById("pId"+i).innerHTML;

  alert(pId);
}
</script>