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>
我有一个 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>