Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Mais uma vez ajuda com Ajax


jgd

Pergunta

Pessoal preciso de ajuda com os procedimentos de ajax outra vez.

É o seguinte:

Tenho que gerar avisos na tela para o usuário tipo Pop-Up

Então para fazer isso dinamicamente fiz isso com Ajax + ASP.

Funcionou!

O problema esta quando tem mais de um aviso. Porque não sei de dá para

passar pelo XMLHttpRequest , por exemplo, mais de um conteúdo para alimenta div´s diferentes.

Para um aviso ( que está funcionando ) utilizei o seguinte código:

<script>
var requipA;
function loadXMLDoc(url){
    requipA = null;
    if (window.XMLHttpRequest) {
        requipA= new XMLHttpRequest();
        requipA.onreadystatechange = ProcessEquipA; // o req.  foi alterado para requip
        requipA.open("POST", url, true); // o req.  foi alterado para requip
        requipA.send(null); // o req.  foi alterado para requip

    } else if (window.ActiveXObject) {
        try {
            requipA= new ActiveXObject("Msxml2.XMLHTTP.4.0");
        } catch(e) {
            try {
                requipA= new ActiveXObject("Msxml2.XMLHTTP.3.0");
            } catch(e) {
                try {
                    requipA= new ActiveXObject("Msxml2.XMLHTTP");
                } catch(e) {
                    try {
                        requipA= new ActiveXObject("Microsoft.XMLHTTP");
                    } catch(e) {
                        requipA= false;
                    }
                }
            }
        }
        if (requipA) {
        
        //alert("vai ")
            requipA.onreadystatechange = ProcessEquipA;
            requipA.open("POST", url, true);
            requipA.send();
        }
    }
}

function ProcessEquipA(){
    if (requipA.readyState == 4) {
        if (requipA.status == 200) {
            document.getElementById("popup").innerHTML = requipA.responseText;
        } else {
        alert(""+requipA.responseText)
        //alert("Houve um problema ao obter os dados:\n" + requipA.statusText);
        }
    }
}

function verificaAlerta(valor){
//alert("aqui "+valor)
loadXMLDoc("verificaAlerta.asp?idUsu="+valor);
}
/////////////////////////////////////////////////////////////////////////////
// Função que fecha o pop-up ao clicar no link fechar
function fechar1(){
document.getElementById('popup').style.display = 'none';
}
// Aqui definimos o tempo para fechar o pop-up
function abrir1(){
document.getElementById('popup').style.display = 'block';
//setTimeout ("fechar()", 3000);
}
</script>
No Html: <DIV id="popup" class="popup"> </DIV> No ASP:
<%Response.Charset="ISO-8859-1" 
%><!--#include file="config_var.asp" --><%
Set cnn = Server.CreateObject("adodb.Connection")
if strOn_Off = "off" then 
cnn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Inetpub\wwwroot\ASP\Dados\bd_dados.mdb; Uid=zzz; Pwd=zzz;" 
else
cnn.Open "driver={Microsoft Access Driver (*.mdb)};DBQ=D:\web\pasta\Dados\bd_dados.mdb; Uid=zzz; Pwd=zzz;" 
end if 

Set rs = Server.CreateObject("ADODB.Recordset")
sql = " Select titulo from tbFollowUp where idUsuPara = " & Request("idUsu") & ""
rs.Open sql,cnn,3
n=0
while not rs.eof 
n=n+1
%>
<table width="300" border="0">
<tr><td colspan=2>
<table width="300" border="0">
<tr><td width="280"></td><td><small><a href="java script: fechar1();">[X]</a></small></td></tr></table>
</td></tr>

<tr><td width="50"  valign="top" height=110> </td>
<td width="250" valign="top"><b> Alerta! </b><br><br>
<%=rs("titulo")%><br>
</td></tr>
<tr><td colspan=2>
<table width="300" border="0">
<tr><td width="280"></td><td><small><a href="java script: fechar1();">[X]</a></small></td></tr></table>
</td></tr>
</td></tr></table>
<%        
rs.MoveNext
Wend%>

<%
rs.Close
Set rs = Nothing
%>
Então pensei em fazer no Do While varias div´s com suas funções “fechar! Correspondes e carregar tudo isso em um div principal.
while not rs.eof 
n=n+1
%>
<DIV id="popup<%=n%>" class="popup">
<table width="300" border="0">
<tr><td colspan=2>
<table width="300" border="0">
<tr><td width="280"></td><td><small><a href="java script: fechar<%=n%> ();">[X]</a></small></td></tr></table>
</td></tr>

<tr><td width="50"  valign="top" height=110> </td>
<td width="250" valign="top"><b> Alerta! </b><br><br>
<%=rs("titulo")%><br>
</td></tr>
<tr><td colspan=2>
<table width="300" border="0">
<tr><td width="280"></td><td><small><a href="java script: fechar<%=n%>();">[X]</a></small></td></tr></table>
</td></tr>
</td></tr></table>

<script>
function fechar<%=n%> (){
document.getElementById('popup').style.display = 'none';
}
</script>

</Div>

<%        
rs.MoveNext
Wend%>

Então até gerou mais de um aviso na tela, porém esta dando erro de objeto no javascript e também gostaria que eles ficassem em cascata um sobre ou outro como as janelas do windows (cascata) e não um embaixo do outro. Deve ser css que não sei como ajustar dinamicamente posicionamento e dimensões..

Aí pensei em separar o conteúdo dos avisos das funcões javascript...

Mas como alimentar divs diferentes no mesmo XMLHttpRequest

Se tiver como em um div o javascript e e outra o conteúdo do aviso.

Agradeço qualquer ajuda.

JGD

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Pessol,

Só para feed-back..

Consegui fazer...

Só precisei determinar (limitar) o numero maximo de avisos. Por Ex.: em 10.

Crie 10 funções javascript e 10 stylos correspontes para cada div criada no Do While

Aumentei Div principla para alocar as demais div´s

E Xuxu Beleza!

Funcionou.

Vale

JGD

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...