Как отправить значение в таблицу базы данных для обработки? - PullRequest
0 голосов
/ 25 января 2019

Я новичок в AJAX, и у меня есть страница JSP, которая выглядит следующим образом:

Screenshot

Новый столбец имени пользователя позволяет мне вводить любую строку текста, и когда я нажимаю кнопку обновления пользователя, он должен обновить таблицу в моей базе данных.

Моя таблица в структуре базы данных имеет уникальный столбец AUSERNAME, в котором хранится имя пользователя, как показано на скриншоте. После нажатия кнопки обновления он должен передать новое значение имени пользователя и обновить это поле в таблице. Это то, чего я пытаюсь достичь.

Я знаю, что мне нужно сделать AJAX-вызов на моей странице JSP, как показано ниже:

<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 для ее обновления.

1 Ответ

0 голосов
/ 25 января 2019

На своей странице 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);

        %>  

Надеюсь, это поможет вам!

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