Показать предупреждение об успехе или неудаче в AJAX JSP после оператора вставки - PullRequest
1 голос
/ 29 мая 2020

Мне нужна помощь в отображении сообщения о состоянии пользователю, когда вставка успешна или нет.

my ajax выглядит так

<script>
function insertData(){
$.ajax({
url: "add.jsp",
type: "post",
dataType: "text",
data: {
userid:$('#userid').val(),
smeid:$('#smeid').val(),
weeks:$('#weeks').val(),
worktype:$('#worktype').val(),
comments1:$('#comments1').val(),
comments2:$('#comments2').val(),
comments3:$('#comments3').val(),
managerID:$('#managerID').val(),
success: function() {
    alert("success");
}
}
});
}
</script>

My jsp страница, на которой происходит вставка, выглядит следующим образом

// variables

try
{

// establish connection
Statement st=conn.createStatement();
int x=st.executeUpdate( // query );
if (x<1)
{
    out.println("false");
}
else
{
    out.println("true");
}        
}
catch(Exception e)
{
System.out.print(e);
e.printStackTrace();
}

Я бы хотел показать предупреждение, когда вставка не удалась. Как вернуть это из jsp в ajax.

EDIT 1:

Пробовал добавление ниже для JSP:

String msg;
if (x > 0)
{
   msg ="true";//inserted
}
else
{
    msg = "false";//not inserted
}   
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(msg);//this send back to ajax success function
}
catch(Exception e)
{
System.out.print(e);
e.printStackTrace();
}

и ниже для ajax:

<script>
function insertData(){
$.ajax({
url: "add.jsp",
type: "post",
dataType: "text",

data: {
userid:$('#userid').val(),
smeid:$('#smeid').val(),
weeks:$('#weeks').val(),
worktype:$('#worktype').val(),
comments1:$('#comments1').val(),
comments2:$('#comments2').val(),
comments3:$('#comments3').val(),
managerID:$('#managerID').val(),
success: function(data) {
    var values = $.trim(data); //triming value if there is any whitespaces
    alert(values);
        if (values == "true") {
      alert("Done inserted"); //show alert
    } else {
      alert("Sorry not inserted");
    }
  }

}
});
}
</script>

1 Ответ

0 голосов
/ 29 мая 2020

Вы можете просто отправить values обратно на ajax success и проверить это значение на соответствие некоторому условию, в зависимости от этого покажите ваш alert.

Итак, ваш jsp будет выглядеть, как показано ниже:

String msg="";
if (x > 0)
{
   msg ="true";//inserted
}
else
{
    msg = "false";//not inserted
}   
response.getWriter().write(msg);//this send back to ajax success function

И ваша ajax успех функция будет выглядеть, как показано ниже:

function insertData() {
   $.ajax({
     url: "add.jsp",
     type: "post",
     dataType: "text",
     data: {
          userid: $('#userid').val(),
          smeid: $('#smeid').val(),
          weeks: $('#weeks').val(),
          worktype: $('#worktype').val(),
          comments1: $('#comments1').val(),
          comments2: $('#comments2').val(),
          comments3: $('#comments3').val(),
          managerID: $('#managerID').val()
        }, //close here
     success: function(data) {
          var values = $.trim(data); //triming value if there is any whitespaces
          alert(values);
          if (values == "true") {
            alert("Done inserted"); //show alert
          } else {
            alert("Sorry not inserted");
          }
        }
      });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...