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