Depois mando a opção selecionada pelo usuário (atualizaCliente) para JavaScript + Ajax
<script>
//////Rotina AJAX AtualizaCliente//////
var requip;
function loadXMLDoc(url){
requip = null;
if (window.XMLHttpRequest) {
requip= new XMLHttpRequest();
requip.onreadystatechange = ProcessEquip; // o req. foi alterado para requip
requip.open("POST", url, true); // o req. foi alterado para requip
requip.send(null); // o req. foi alterado para requip
} else if (window.ActiveXObject) {
try {
requip= new ActiveXObject("Msxml2.XMLHTTP.4.0");
} catch(e) {
try {
requip= new ActiveXObject("Msxml2.XMLHTTP.3.0");
} catch(e) {
try {
requip= new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
requip= new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
requip= false;
}
}
}
}
if (requip) {
//alert("vai ")
requip.onreadystatechange = ProcessEquip;
requip.open("POST", url, true);
requip.send();
}
}
}
///receber o select que o ASP gerou e manda para a div elemento.
function ProcessEquip(){
if (requip.readyState == 4) {
if (requip.status == 200) {
document.getElementById("lanc").innerHTML = requip.responseText;
} else {
///alert(""+requip.responseText)
alert("Houve um problema ao obter os dados:\n" + requip.statusText);
}
}
}
// Manda valor do HTML Campo para o ASP Ajax
function atualizaCliente(valor){
//alert("aqui "+valor)
loadXMLDoc("atualizaCliente.asp?grupo="+valor);
}
/////////////////////////////////////////////////////////////////////////////
Rotina ASP
Pega o paramentro que o Ajax mandou e alimenta o select
<%Response.Charset="ISO-8859-1" 'acentuação
%>
<!--#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\bdados.mdb; Uid=XXX; Pwd=zzz;"
else
cnn.Open "driver={Microsoft Access Driver (*.mdb)};DBQ=D:\web\PastaDominio\Dados\bdados.mdb; Uid=xxx; Pwd=zzz;"
end if
Set rs = Server.CreateObject("ADODB.Recordset")
sql = " Select * from tbCad2 where tipoCad = '" & Request("grupo") & "' order by nome"
rs.Open sql,cnn,3
%>
<select name="idCad" alt="yes">
<option value="0">--</option>
<% while not rs.eof %>
<option value="<%=rs("idCad")%>"><%=rs("nome")%></option>
<% rs.MoveNext
Wend%>
</select>
<%
rs.Close
Set rs = Nothing
%>
OK! Funciona no IE e FF
Então neste mesmo form tenho mais os elementos :
Pergunta
jgd
:wacko:
Olá Pessoal,
Estou com seguinte problema envolvendo JavaScript,Ajax,ASP e Navegadores I.E e FF.
Seguinte tenho
Depois mando a opção selecionada pelo usuário (atualizaCliente) para JavaScript + Ajax<script> //////Rotina AJAX AtualizaCliente////// var requip; function loadXMLDoc(url){ requip = null; if (window.XMLHttpRequest) { requip= new XMLHttpRequest(); requip.onreadystatechange = ProcessEquip; // o req. foi alterado para requip requip.open("POST", url, true); // o req. foi alterado para requip requip.send(null); // o req. foi alterado para requip } else if (window.ActiveXObject) { try { requip= new ActiveXObject("Msxml2.XMLHTTP.4.0"); } catch(e) { try { requip= new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) { try { requip= new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { requip= new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { requip= false; } } } } if (requip) { //alert("vai ") requip.onreadystatechange = ProcessEquip; requip.open("POST", url, true); requip.send(); } } } ///receber o select que o ASP gerou e manda para a div elemento. function ProcessEquip(){ if (requip.readyState == 4) { if (requip.status == 200) { document.getElementById("lanc").innerHTML = requip.responseText; } else { ///alert(""+requip.responseText) alert("Houve um problema ao obter os dados:\n" + requip.statusText); } } } // Manda valor do HTML Campo para o ASP Ajax function atualizaCliente(valor){ //alert("aqui "+valor) loadXMLDoc("atualizaCliente.asp?grupo="+valor); } /////////////////////////////////////////////////////////////////////////////Rotina ASP Pega o paramentro que o Ajax mandou e alimenta o select<%Response.Charset="ISO-8859-1" 'acentuação %> <!--#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\bdados.mdb; Uid=XXX; Pwd=zzz;" else cnn.Open "driver={Microsoft Access Driver (*.mdb)};DBQ=D:\web\PastaDominio\Dados\bdados.mdb; Uid=xxx; Pwd=zzz;" end if Set rs = Server.CreateObject("ADODB.Recordset") sql = " Select * from tbCad2 where tipoCad = '" & Request("grupo") & "' order by nome" rs.Open sql,cnn,3 %> <select name="idCad" alt="yes"> <option value="0">--</option> <% while not rs.eof %> <option value="<%=rs("idCad")%>"><%=rs("nome")%></option> <% rs.MoveNext Wend%> </select> <% rs.Close Set rs = Nothing %>OK! Funciona no IE e FF Então neste mesmo form tenho mais os elementos : Depois a rotina correspondente javascript + ajax : atualizaGrupo<script> var requip2; function loadXMLDoc2(url){ requip2 = null; if (window.XMLHttpRequest) { requip2= new XMLHttpRequest(); requip2.onreadystatechange = ProcessEquip2; // o req. foi alterado para requip requip2.open("POST", url, true); // o req. foi alterado para requip requip2.send(null); // o req. foi alterado para requip } else if (window.ActiveXObject) { try { requip2= new ActiveXObject("Msxml2.XMLHTTP.4.0"); } catch(e) { try { requip2= new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) { try { requip2= new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { requip2= new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { requip2= false; } } } } if (requip2) { //alert("vai ") requip2.onreadystatechange = ProcessEquip2; requip2.open("POST", url, true); requip2.send(); } } } function ProcessEquip2(){ if (requip2.readyState == 4) { if (requip2.status == 200) { document.getElementById("lancG").innerHTML = requip2.responseText; } else { //alert("zz "+requip2.responseText) alert("Houve um problema ao obter os dados:\n" + requip2.statusText); } } } function atualizaGrupo(valor){ var tipoNav =navigator.appName; if (tipoNav!="Microsoft Internet Explorer") { alert("Este navegado não dá suporte aos\nrecursos automaticos disponíveis nesta tela.\nRecomendamos a utilização do Internet Explorer."); document.form.getElementById("btGrava").desabled=true; } //alert("aqui "+valor) document.getElementById("lancG").innerHTML = "<div id='lancG'><select name='idSubGrupoContabil' Onchange='atualizaSuCta(this.value);' alt='yes'><option value='0'>--</option></select></div>" document.getElementById("lancSC").innerHTML = "<div id='lancSC'><select name='idSubCtaContabil' alt='yes'><option value='0'>--</option></select><input type='hidden' name='subconta' value='0' alt='yes'></div>" if(valor=="1"){ document.getElementById("boleto").innerHTML = "<div id='boleto'>Gerar Boleto: </td><td><input type='radio' name='boleto' alt='yes' id='1' value='S'>Sim <input type='radio' name='boleto' alt='yes' id='2' value='N'>Não </div>" }else{ document.getElementById("boleto").innerHTML = "<div id='boleto'></div>" } loadXMLDoc2("atualizaSubGrupo.asp?tipoLanc="+valor); } </script>A rotinas ASP correspondente : atualizaGrupo<%Response.Charset="ISO-8859-1" 'acentuação %> <!--#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\bdados.mdb; Uid=XXX; Pwd=zzz;" else cnn.Open "driver={Microsoft Access Driver (*.mdb)};DBQ=D:\web\PastaDominio\Dados\bdados.mdb; Uid=xxx; Pwd=zzz;" end if Set rs = Server.CreateObject("ADODB.Recordset") sql = " Select * from tbSubGrupo where idG = " & Request("tipoLanc") & " order by subgrupo" rs.Open sql,cnn,3 %> <select name="idSubGrupoContabil" Onchange="atualizaSuCta(this.value);" alt="yes"> <option value="0">--</option> <% while not rs.eof %> <option value="<%=rs("idSg")%>"><%=rs("subgrupo")%></option> <% rs.MoveNext Wend%> </select> <% rs.Close Set rs = Nothing %>Mas esta ultima rotina só funciona no I.E.... No FF não !!!
Aí revisei o codigo... não achei nada - a principio, que provocasse erro.
Pesquise na net.. e descobri que "supostamente" o innerHTML é nativo do I.E (W3C) e para o Fire Fox (Mozilla) o
comando correspondente seria o textContent...
Ok! Fiz a função para testar o navegado e.... descobri que até funciona. Porem não gera tags html...
porque textContent equivale ao innerText só gerando string texto.
Mas o interessante de tudo é a primeira rotina (lá de cima) funiona no FF e utiliza innerHTML.
Aí complicou? Funciona uma e não funciona a outro... sendo que são quase iguais.
alguém poderia me ajuda??
Abraço
JGD
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.