如何使用jquery将记录更新到mysql数据库?
我在进我所插入的记录的onsubmit使用jQuery mysql数据库一个UserDetails表(USER_ID,姓名,年龄,电话,电子邮件,文本) 现在同样的记录可以在列表中的HTML页面使用jquery观看,当我点击USER_ID(“1”,这我已经为A HREF),所以当我点击1,其中1包含的细节将在我的user_details.html页像如何使用jquery将记录更新到mysql数据库?
http://localhost:8082/JqueryForm/html/user_details.html?user_id=1
查看名称:abc ----------> textarea在我的html页面
电话:1000000
电子邮件:[email protected]
年龄:20
文本:ABCDEFGHIJ
现在,当我user_details.html仅与特定用户的详细信息打开,我可以编辑值,因为它是一个textarea和我的数据库为同一USER_ID更新值,以更新按钮的帮助
我写了一个更新查询
public void update_UserDetails(int user_id ,String user_name, String age,
String mobile_no, String email_id,
String ck_text) {
try {
prep = (PreparedStatement) connection
.prepareStatement("update user_details set
user_name=?,user_age=?,mobile_no=?,email_id=?,ck_text=? where
user_id=?");
prep.setInt(1, user_id);
prep.setString(2, user_name);
prep.setString(3, age);
prep.setString(4, mobile_no);
prep.setString(5, email_id);
prep.setString(6, ck_text);
prep.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
和调用的方法在我的user_details.jsp页
<%
Sql_Server server = new Sql_Server();
String name = request.getParameter("name");
String age = request.getParameter("age");
String email = request.getParameter("email");
String phone = request.getParameter("phone");
String ck_text = request.getParameter("ck_text");
String user_id = request.getParameter("user_id");
int userid = Integer.parseInt(user_id);
server.update_UserDetails(userid,name, age, phone, email,ck_text);
%>
现在,当我在我的jQuery调用JSP页面时,这些值不会得到更新,谁能帮助我理解为什么心不是价值得到更新?
$(document).ready(function(){
$("#update").click(function(e) {
var name = $("#nametext").val();
var age = $("#agetext").val();
var email = $("#emailtext").val();
var phone = $("#phonetext").val();
var ck_text = $("#textarea").val();
var dataString = '&name=' + name + '&age=' + age + '&email=' + email + '&phone=' + phone + '&ck_text=' + ck_text;
$.ajax({
type : "POST",
url :
"http://localhost:8082/JqueryForm/html/jsp/update_userdetails.jsp",
data : dataString,
cache : false,
success : function(result) {
alert("Records Updated Successfully");
}
});
return false;
});
});
你的问题可能与该值的顺序做,要设置到user_id说明的名称和编号,以ck_text:
prep = (PreparedStatement) connection
.prepareStatement("update user_details set
user_name=?,user_age=?,mobile_no=?,email_id=?,ck_text=? where
user_id=?");
prep.setInt(1, user_id);
prep.setString(2, user_name);
prep.setString(3, age);
prep.setString(4, mobile_no);
prep.setString(5, email_id);
prep.setString(6, ck_text);
你如下
被assiging错误的价值观 做prep.setString(1, user_name);
prep.setString(2, age);
prep.setString(3, mobile_no);
prep.setString(4, email_id);
prep.setString(5, ck_text);
prep.setInt(6, user_id);
我注意到,在你的jQuery中,在你的ajax调用中,var dataString不包含你需要执行更新的user_id。同样在你的准备陈述中,你的变量的顺序不受尊重。
.prepareStatement( “更新user_details设置USER_NAME = ?, user_age = ?, mobile_no = ?, EMAIL_ID = ?, ck_text =其中 USER_ID =?”);
prep.setInt(1,USER_ID); //应在最后位置
prep.setString(2,USER_NAME);
prep.setString(3,年龄);
prep.setString(4,mobile_no);
prep.setString(5,email_id);
准备。setString(6,ck_text);
prep.executeUpdate();
所以先生,我需要在我的数据字符串右边有一个user_id var? ,你能告诉我如何添加它,因为我没有任何textarea for user_id,我可以通过id调用,user_id附加了我的url http:// localhost:8082/JqueryForm/html/user_details.html? USER_ID = 1 – 2015-04-01 05:43:03
@DDA描述了正确的答案。只是补充。
从URL http://localhost:8082/JqueryForm/html/user_details.html?user_id=1 您可以使用下面的代码得到查询字符串(见this post更详细的讨论):
$(document).ready(function(){
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
$("#update").click(function(e) {
var name = $("#nametext").val();
var age = $("#agetext").val();
var email = $("#emailtext").val();
var phone = $("#phonetext").val();
var ck_text = $("#textarea").val();
var user_id = getParameterByName('user_id');
var dataString = 'user_id=' + user_id + '&name=' + name + '&age=' + age + '&email=' + email + '&phone=' + phone + '&ck_text=' + ck_text;
$.ajax({
type : "POST",
url :
"http://localhost:8082/JqueryForm/html/jsp/update_userdetails.jsp",
data : dataString,
cache : false,
success : function(result) {
alert("Records Updated Successfully");
}
});
return false;
});
});
而且更新语句已被更改为:
public void update_UserDetails(int user_id ,String user_name, String age,
String mobile_no, String email_id,
String ck_text) {
try {
prep = (PreparedStatement) connection
.prepareStatement("update user_details set user_name=?,user_age=?,mobile_no=?,email_id=?,ck_text=? where user_id=?");
prep.setString(1, user_name);
prep.setString(2, age);
prep.setString(3, mobile_no);
prep.setString(4, email_id);
prep.setString(5, ck_text);
prep.setInt(6, user_id);
prep.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
控制台说什么?任何错误?该网页是否可以找到?如果是,它会返回什么? – 2015-03-31 11:30:20
你有没有想过这个.. prep.setString(6,user_id); ..? – 2015-03-31 11:34:15
我已经使用prep.setInt(1,user_id) – 2015-03-31 11:45:38