Pass Function javaScript by ajax [closed]

1

I'm trying to return an alert from the server, but I can not. the idea would be as follows index.jsp

<html>
<head>
<title>Teste</title>
    <link rel="stylesheet" type="text/css" href="../estilos/estilo.css" />
    <script type="text/javascript" src="../js/ajax.js"></script>
</head>
<body>    
  nome:<input type="text" maxlength="30" Id="nome" name="nome"></input>
  data:<input type="text" maxlength="10" Id="data" name="data"></input>
  <input type=button  tabindex="8" class="botao" onclick="manda('inclui',1);" value="Adicionar">
  <div id=resultado name=resultado>
  </div>
</body>
</html> 

ajax.js

function openAjaxd2() {
  var ajax;
  try{
      ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers decentes, como: Firefox, Safari, dentre outros.
  }catch(ee){
      try{
          ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS
      }catch(e){
          try{
              ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
          }catch(E){
              ajax = false;
          }
      }
  }
  return ajax;
}


function manda(sinal,indice) {

  var resultado = document.getElementById('resultado');
  var ajax = openAjaxd2(); // Inicia o Ajax.

  var url = "teste2.jsp";
  var parametros = "sinal=" + sinal;
  ajax.open("POST", url, true);
  ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  if (sinal == "inclui")
  {
    parametros += "&nome=" + encodeURIComponent(document.getElementById('nome').value);
    parametros += "&data=" + encodeURIComponent(document.getElementById('data').value);          
  } else if (sinal == "exclui")
  {
    parametros += "&indice=" + indice;
  }
  ajax.onreadystatechange = function () {
      if (ajax.readyState == 1){                
          resultado.innerHTML = "<center><font class='titulo'>Carregando...</font></center>";
      }
      if (ajax.readyState == 4) {  // Quando estiver tudo pronto.
          if (ajax.status == 200) {
              var a = ajax.responseText;
              if (a.indexOf('Erro:') > 0) {
                  alert(a.substring(a.indexOf('Erro:') + 5, a.indexOf('Fim')));
                  a = a.substring(0, a.indexOf('Erro:')) + a.substring(a.indexOf('Fim') + 3, a.length);
              }
              resultado.innerHTML = a;
          } else{
              resultado.innerHTML = "Erro: " + ajax.statusText + " " + ajax.responseText;
          }    
      }
  }
  ajax.send(parametros); // submete

}

teste2.jsp

<%@page import="Base.Utils"%>
<%@page import="java.util.List"%>
<%@page import="java.util.Date"%> 
<%

 String sinal = request.getParameter("sinal");
 String linha;
 String str[];
 Date data;
 String nome;
 SimpleDateFormat sdf;
 {
 //***... trecho de código irrelevante... ***//
 } 
 try{
    data =sdf.parse(request.getParameter("data")); 
 }catch (Exception e){
   out.println("<div><script type=\"text/javascript\">alert('Informe a data');</script></div>");
 } 
 {
 //***... mais um trecho de código irrelevante que inclui os nomes em uma List e monta uma <table> com os valores... ***//
 }


%>

I needed this script to run, when I load it directly to the test2.jsp page it gives the alert, but when I call it by ajax no (it appears in the html sources, next to the table that is generated in test2.jsp

    
asked by anonymous 21.07.2015 / 16:33

1 answer

0

To solve the problem I had to change the following

teste2.jsp

<%@page import="Base.Utils"%>
<%@page import="java.util.List"%>
<%@page import="java.util.Date"%> 
<%

 String sinal = request.getParameter("sinal");
 String linha;
 String str[];
 Date data;
 String nome;
 SimpleDateFormat sdf;
 {
     //***... trecho de código irrelevante... ***//
 } 
 try{
        data =sdf.parse(request.getParameter("data")); 
 }catch (Exception e){
   out.println("<input type=hidden id=\"erros\" name=\"erros\" value=\"data invalida\" />");
 } 
 {
 //***... mais um trecho de código irrelevante que inclui os nomes em uma List e monta uma <table> com os valores... ***//
 }


%>

ajax.js

function openAjaxd2() {
  var ajax;
  try{
      ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers decentes, como: Firefox, Safari, dentre outros.
  }catch(ee){
      try{
          ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS
      }catch(e){
          try{
              ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
          }catch(E){
              ajax = false;
          }
      }
  }
  return ajax;
}


function manda(sinal,indice) {

  var resultado = document.getElementById('resultado');
  var ajax = openAjaxd2(); // Inicia o Ajax.

  var url = "teste2.jsp";
  var parametros = "sinal=" + sinal;
  ajax.open("POST", url, true);
  ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  if (sinal == "inclui")
  {
    parametros += "&nome=" + encodeURIComponent(document.getElementById('nome').value);
    parametros += "&data=" + encodeURIComponent(document.getElementById('data').value);          
  } else if (sinal == "exclui")
  {
    parametros += "&indice=" + indice;
  }
  ajax.onreadystatechange = function () {
      if (ajax.readyState == 1){                
          resultado.innerHTML = "<center><font class='titulo'>Carregando...</font></center>";
      }
      if (ajax.readyState == 4) {  // Quando estiver tudo pronto.
          if (ajax.status == 200) {
              var a = ajax.responseText;                  
              resultado.innerHTML = a;
              var erros = document.getElementById('erros');
                if (erros===null) {
                    alert(erros.value); 
                }
          } else{
              resultado.innerHTML = "Erro: " + ajax.statusText + " " + ajax.responseText;
          }    
      }
  }
  ajax.send(parametros); // submete

}
    
21.07.2015 / 19:54