ASP如何从HTML列中获取值

时间:2015-04-15 00:06:19

标签: html vbscript asp-classic html-table

我有一个ASP页面,在查询SQL数据库之后,在HTML表格中显示数据行。返回的行数可以变化。我想添加一个函数,以便当我单击一个按钮时,我会向SQL服务器数据库发出一个查询,以更新该特定行中的列。为此,我将使用结果集中的主键。

我遇到困难的部分是获取正确的行ID。到目前为止我写的内容每次返回相同的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.第2行将具有ID 2等。 如果我单击我的按钮以激活post方法,则无论我点击哪一行,警报每次都会显示ID 1。我猜对了,因为我最初为每行的列分配了相同的ID。我现在使用计数器变量并将其分配给ID,该ID现在为列创建唯一ID,但我不确定如何调用该函数并使用正确的ID。任何指针都非常感谢!

1 个答案:

答案 0 :(得分:0)

你必须将传递给函数:

<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>