我是AJAX的新手,并且有一个JSP页面,如下所示:
新的用户名列允许我输入任何字符串,当我点击“更新用户”按钮时,它将更新数据库中的表。
我在数据库结构中的表具有一个唯一列AUSERNAME
,该列存储用户名,如屏幕截图所示。单击更新按钮后,它将传递新的用户名值并更新表中的该字段。这就是我要实现的目标。
我知道我必须在我的JSP页面中进行如下所示的AJAX调用:
<script >
function update(param) {
var currentbal = document.getElementsByName('NewUserName' + param)[0].value;
console.log(currentbal);
$.ajax({
type: "POST",
url: "update.jsp",
data: { name: currentbal},
success:function( msg ) {
alert( "Data Updated: " + msg );
},error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
</script>
至于我的update.jsp
页,我不太确定如何处理它并更改表。我相信我需要在其中创建一个函数,但不确定如何将值传递给它并使用sql语句对其进行更新。
答案 0 :(得分:1)
在您的jsp页面中,您可以执行以下操作:
<%@page import= "java.sql.*" %>
<%@page import= "java.io.*" %>
<%
//getting data send from ajax request
String id= request.getParameter("id");
String user = request.getParameter("name"); //name for example
//data base code
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection con = null;
ResultSet resultSet = null;
Statement stmt = null;
int row=0;
try {
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/abc","root","swati");
String sql = "UPDATE `tablename` SET `user`=? WHERE `id`=?"; //updating table
PreparedStatement statement = con.prepareStatement(sql);
statement.setString(1, name);
statement.setString(2, id);
row = statement.executeUpdate();
if (row > 0) {
String txt="updated";
// forwards to the message page
}
}
else {
String txt="not updated";
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(txt);
%>
希望这对您有帮助!