如何在单击按钮时通过JavaScript函数更新MySQL中的表?

时间:2019-01-24 08:55:59

标签: javascript jsp

我写了一个简单的JSP页面,如下所示:

Screenshot

在数据库的表中检索用户名,并按屏幕快照所示显示。同样,用户类型记录也从同一表中检索。现在,我在[HttpPut("{id}")] public IActionResult PutTest(string id, FileViewModel vm) { //Do stuff return StatusCode(200); } 下添加了一个可选功能,用户可以决定输入新的用户名。

如果输入了新的用户名,则表中的用户名列应反映新的更改。同样,用户可以通过单选按钮更改用户类型。单击New username按钮后,它应将用户名(如果不为空)更新,并将用户类型更新为相应的列。假设表中的两列分别是表中的update userUsername

现在,我能够在显示的每一行中唯一地标识每个rowID。

下面是示例代码(在JSP中):

User Type

我在同一页面上创建了一个JavaScript函数:

  <%



        try {



            Class.forName("com.mysql.jdbc.Driver");
            String connectionURL = "jdbc:mysql://localhost:3306/gmc";
            String username = "root";
            String password = "root";
            Connection conn = null;

            conn = DriverManager.getConnection(connectionURL, "root", "root");

            String query = "select ausername, ausertype from auser where AUSTATE='Y'";
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(query);
            String str = "<table border=2><tr><th>Username</th><th>New Username</th><th>User Type</th><th>Update</th></tr>";
              int rowid = 0;
            while (rs.next()) {
                rowid ++;
                String autype = rs.getString("ausertype");
                str += "<tr><td>" + rs.getString("ausername") + "</td> <td><input type=\"text\" name=\"NewUserName\" " +
                        "value=\"\"></td> <td>";

                if (autype.equalsIgnoreCase("Superuser")) {
                    str += "<input type=\"radio\" name=\"usertype"+rowid+"\"  value=\"Superuser\" checked> Superuser ";
                }else{
                    str += "<input type=\"radio\" name=\"usertype"+rowid+"\" value=\"Superuser\" > Superuser ";
                }
                if(autype.equalsIgnoreCase("Basic")) {
                    str += " <input type=\"radio\" name=\"usertype"+rowid+"\" value=\"Basic\"  checked > Basic ";
                }else {
                    str += " <input type=\"radio\" name=\"usertype"+rowid+"\" value=\"Basic\"   > Basic ";
                }
                if(autype.equalsIgnoreCase("View")){
                    str += " <input type=\"radio\" name=\"usertype"+rowid+"\" value=\"View\"  checked> View ";
                }else {
                    str += " <input type=\"radio\" name=\"usertype"+rowid+"\" value=\"View\"  > View ";
                }
                str += "</td><td><button type=\"button\" onclick=\"+update("+rowid+")\">Update User</button></td> </tr>";


            }










            out.println(str);
            rs.close();
            stmt.close();
            conn.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

    %>

我的麻烦是,因为我能够检索每个用户的rowID(USER1 = usertype1,abbygale = usertype2等),所以我的最后一步是捕获所做的更改并更新表。我相信您无法使用JavaScript进行SQL更新,而必须使用一些AJAX调用。我是AJAX的新手。

是否可以让我的职能部门实现这一目标?

0 个答案:

没有答案