如何使用jsp变量传输onclick并指向其他页面

时间:2014-06-03 01:59:42

标签: javascript mysql jsp sql-update

有谁知道如何将变量从按钮传输到其他页面。 我正在创建一个更新和删除站点。数据库查询所有数据,并且有一个编辑按钮,如果我按下编辑,它将直接指向第二个站点。该站点将显示您要更新的数据信息。

源代码如下。我使用下面的源代码,当我进入编辑时,将不会直接到页面(edit_delete.jsp) 任何人都可以安慰我,代码是错的 请参阅我标记的源代码中的粗体,这可能是个问题。

----------------------------------------- source code ---- -------------------------------------------------- -----

<script language="javascript">
function editRecord(no){
var f=document.form1;
  alert(no);  
f.method="post";
**f.action='edit_delete.jsp?id='+no;**
f.submit();
}
</script>

Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/webapp?user=root&useUnicode=true&characterEncoding=big5");
     stmt=con.prepareStatement("select id, no, name, class, from test");
     rs = stmt.executeQuery();
   while(rs.next()) {
     int test = rs.getInt("no");
      out.print("<tr><td>");
      out.print(rs.getString("id"));
      out.print("</td><td>");
      out.print(rs.getString("no"));
      out.print("</td><td>");
      out.print(rs.getString("name"));
      out.print("</td><td>");
      out.print(rs.getString("class"));
     out.print("</td><td>");
     out.print("</td><td>");

      **out.println("<input type='button' name='edit' value='Edit' onclick='editRecord('rs.getInt('no'))'>");**

      out.print("</td></tr>");



    }
    %>

1 个答案:

答案 0 :(得分:0)

始终尽量避免使用 Scriplet ,而是使用更易于使用且不易出错的JavaServer Pages Standard Tag LibraryExpression Language

SQL Tag Library旨在用于访问数据库以进行快速原型设计和简单应用程序。

示例代码:

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
...

<sql:setDataSource var="webappDataSource" driver="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/webapp?user=root&useUnicode=true&characterEncoding=big5"
    user="root" password="" />

<sql:query dataSource="${webappDataSource}" 
            sql="select id, no, name, class, from test" var="result" />

<table width="100%" border="1">
    <c:forEach var="row" items="${result.rows}">
        <tr>
            <td>${row.no}</td>
            <td>${row.id}</td>
            <td>${row.no}</td>
            <td>${row.name}</td>
            <td>${row.class}</td>
            <td><input type='button' name='edit' value='Edit' onclick='editRecord(${row.no})' /></td>
        </tr>
    </c:forEach>
</table>

您可以尝试使用Window open() Method而不是表单提交,因为它是简单的获取请求,并且值在URL中作为查询字符串传递。

例如

<input type='button' name='edit' value='Edit' onclick='window.open("edit_delete.jsp?id=${row.no}");'/>