javascript - JSP 提交一个文本框值
问题描述
我想将我的文本框值(“20”)插入数据库。我该怎么做 ?如果用户从未在文本框中输入任何值,它将通知用户。
我已经创建了一个js文件,但它不起作用......
分配.js
document.getElementById("assignBtn").onclick = function () {
var errmessage = "";
var na = document.forms["assignTo"]["Number"].value;
if (na == "") {
//if(document.getElementById("ExerciseArm").value=="") {
errmessage += "*Please enter the number of time for arm<br>";
}
var nl = document.forms["assignTo"]["Number"].value;
if (nl == "") {
//if(document.getElementById("ExerciseTime1").value=="") {
errmessage += "*Please enter the number of time for leg <br>";
}
if (na != "" && nl == "") {
document.assignTo.submit();
alert('Exercise has been assigned succesfully.');
} else if (na == "" && nl != "") {
document.assignTo.submit();
alert('Exercise has been assigned succesfully.');
} else if (na != "" && nl != "") {
document.assignTo.submit();
alert('Exercise has been assigned succesfully.');
} else if (errmessage.length > 0) {
errmessage = errmessage.fontcolor("red");
errmessage = errmessage.fontsize("2");
document.getElementById("divMessage").innerHTML = errmessage;
}
}
分配给.jsp
String[] id = request.getParameterValues("assignchkbox");
String armID = request.getParameter("ArmID");
String number = request.getParameter("Number");
int count = 0;
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
// Step 2: Define Connection URL
String connURL = "jdbc:mysql://localhost/medicloud?user=root&password=root";
// Step 3: Establish connection to URL
conn = DriverManager.getConnection(connURL);
if (id != null) {
for (int i = 0; i < id.length; i++) {
String sqlStr = "Insert into assign(ArmID,Number) Value(?,?)";
PreparedStatement pstmt = conn.prepareStatement(sqlStr);
pstmt.setInt(1, Integer.parseInt(id[i]));
pstmt.setString(2, number);
//pstmt.setInt(1, Integer.parseInt(ids[i]));
int rec = pstmt.executeUpdate();
if (rec == 1) {
count++;
response.sendRedirect("assign.jsp");
}
}
}
}
忽略 jsp 文件夹中的所有 id (他们按照我想要的方式工作)。现在唯一的问题是文本框值没有插入数据库和Idk错误在哪里
解决方案
尝试您的 jsp 文件是否从表单中接受了您需要的值:
String username = "<your username>";
String pass = "<your pass>";
Class.forName("com.mysql.jdbc.Driver");
String connURL = "jdbc:mysql://localhost:<port>/medicloud";
conn = DriverManager.getConnection(connURL,username,pass);
而不是你的代码。在某些情况下,您必须将 mysqljdbc.jar 导入到 WEB-INF/lib 中,我不完全记得路径,请在您的项目中检查它。
不要忘记证明你的数据库实例端口,在 mysql 中应该是 3306。
而且您的代码根本不干净,您应该捕获异常以检索更多调试所需的信息。
推荐阅读
- java - 在向 grails 发出请求时遇到 cors 问题
- jquery - TypeError:多次使用后$不是函数
- c++ - openCl 路径跟踪器会产生奇怪的噪声模式
- javascript - 日期函数在 chrome 中工作,但在 Firefox 中不工作,变得未定义
- cordova - Phonegap-plugin-push 通知
- flutter - 使用颤振耀斑时,不能将“dart.core::int”类型的值分配给“dart.core::double”类型的变量
- windows - VS2017源码标签标题中的“:”是什么意思
- awk - 使用 awk 将一个文件按模式拆分成几个小文件
- android - RecyclerView smoothScrollToPosition(lastItem) 滚动到最后一个项目部分可见的底部
- postgresql - 从 Kubernetes 集群外部连接到 postgres 时出现问题