JSP отправляет значение текстового поля - PullRequest
0 голосов
/ 02 июля 2018

enter image description here

Я хочу вставить значение моего текстового поля ("20") в базу данных. Как мне это сделать ? И если пользователь никогда не вводит какое-либо значение в текстовое поле, он уведомляет об этом пользователя.

Я создал файл js, но он не работает ...

assign.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;
    }
}

assignTo.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 (они работают так, как я хотел). Единственная проблема сейчас заключается в том, что значение текстового поля не вставляется в базу данных, а Idk где находится ошибка

1 Ответ

0 голосов
/ 02 июля 2018

Попробуйте, если ваш 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.

А ваш код совсем не чистый, вам нужно перехватить исключение, чтобы получить больше информации, необходимой для отладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...