Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lezão

Combo aninhados em AJAX

Recommended Posts

Ola Xan, boa noite!

 

estava segindo vcs em post da biakelly, e você postou um exemplo q se encaixa certinho em q eu estou precisando.

Mas naun esta funcionando ja olhei eu td e naun consegui encontrar o erro veja os codigos.

 

index.asp

<% Response.Charset="ISO-8859-1" 'linha responsavel pela acentuação%>
<HTML>
<HEAD>
<TITLE>.:: Combos com AJAX ::.</TITLE>
<META NAME="Author" CONTENT="Wellington Marinheiro">
<script src="lanc_ComboAjax.js"> </script>
</HEAD>
<BODY>
<%  
if request.queryString("at")= "" then

    db = Server.MapPath("../../Dados/Amador_2015.mdb")
    Set cnn = Server.CreateObject("adodb.Connection")
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& db &";"

    SQL="SELECT * FROM Clube ORDER by P Desc"
    SET rs = Server.CreateObject("Adodb.recordset")
    rs.Open SQL,cnn
    if not rs.eof then
	    lista = rs.getrows()
	    total = ubound(lista,2)
    end if
    rs.close
    set rs = nothing
    %>
    <CENTER>
    Utilizando AJAX para atualizar um COMBOBOX
    <hr>
    <form name="form" action="index.asp?at=1" method="post">
	    <table border="0" width="400">
		    <tr>
			    <td><B>Clube</B>
			    <td>
				    <select name="categoria" class="select"  Onchange="atualizaLanc(this.value);">
					    <option value="">selecionar...
					    
					    <%
					    for t=0 to total
						    response.write "<option value=" & lista(0,t) & "|" & lista(1,t) &">" & lista(1,t) & "</option>"
					    next%>
				    </select>
			    <tr>
				    <td><B>Jogador:</B>
				    <td>
					    <div id="lanc">
						    <select name="Lancamento">
							    <option value="">Selecionar categoria</option>
						    </select>
					    </div>
			    <tr>
				    <td colspan="2" align="center">
				    <INPUT TYPE="submit" value="Enviar">
			    </tr>
		    </table>
	    </form>
    </CENTER>
<%
else
	    response.write "<div align=center><B>Resultado:</B><BR>"
	    response.write "Categoria selecionada: " & request.Form("nomejogador") & "<BR>"
	    response.write "Lançamento: " & request.Form("foto") & "<BR><BR>"
	    response.write "<A HREF='index.asp'>Nova escolha</A>"
	    response.write "</div>"
end If
%>

</body>
</html> 

Lanc_comboajax.js

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) {
		    requip.onreadystatechange = ProcessEquip;
		    requip.open("POST", url, true);
		    requip.send();
	    }
    }
}


function ProcessEquip(){
    if (requip.readyState == 4) {
	    if (requip.status == 200) {
		    document.getElementById("lanc").innerHTML = requip.responseText;
	    } else {
		    alert("Houve um problema ao obter os dados:\n" + requip.statusText);
	    }
    }
}
function atualizaLanc(valor){
    loadXMLDoc("lancLista.asp?id="+valor);
} 

creio eu q o erro esta aki ele naun esta dando o retorno.

function atualizaLanc(valor){
    loadXMLDoc("lancLista.asp?id="+valor);
} 

Lanclista.asp

<% Response.Charset="ISO-8859-1" 'linha responsavel pela acentuação

db = Server.MapPath("../../dados/amador_2015.mdb")
Set cnn = Server.CreateObject("adodb.Connection")
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& db &";"

texto=Split(Request("ID"),"|")
cat = texto(0)

Set rs = Server.CreateObject("ADODB.Recordset")
sql = " Select * from jogadores where idClube = " & id & " order by NomeJogador"
rs.Open sql,cnn,3
%>
<select name="lancamento">
    <option value="">Selecionar categoria</option>
    <% while not rs.eof %>
		    <option value="<%=(rs.Fields.Item("Foto").Value)%>,<%=(rs.Fields.Item("Posicao").Value)%>"><%=(rs.Fields.Item("NomeJogador").Value)%></option>
    <%	    rs.MoveNext
    Wend%>
</select>
    <INPUT TYPE="text" NAME="nomecat" value="<%=texto(1)%>">
<%
rs.Close
Set rs = Nothing
%> 

veja como esta em meu site

http://www.shopcolina.com.br/colinaesporte/painel/jogadores/index.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posso sim, Gilberto Jr!

esse codigo naun é o mesmo acima, mas faz as mesmas funcões....

 

Codigo


<%
Function EscreveFuncaoJavaScript ( Conexao )
'O parametro conexao receberá uma conexao aberta!
'Em funcoes, geralmente não criamos objetos do tipo conexões!
'Opte por sempre deixar sua função o mais compatível possível com qualquer projeto!

'Primeiro vamos escrever o cabecalho de qualquer script javascript!
Response.Write "<script language=""JavaScript"">" & vbcrlf 
Response.Write "function atualizajogadores (form) {" & vbcrlf

'Essa função JavaScript recebe o form em que estão os campos a serem atualizados!
'Veja na chamada da função no método OnChange em que se passa o this.form!

'Vamos criar um switch para ele verificar qual opção foi selecionada!! 
Response.Write "switch (form.NomeClube.options[form.NomeClube.selectedIndex].value) {" & vbcrlf 

'Agora entramos com o banco de dados! Temos que jogar aqui todas as opções de carro!
SqlClube = "SELECT * FROM Clube ORDER BY NomeClube" 
Set rsClube = Conexao.Execute ( SqlClube )

While NOT rsClube.EOF

'Caso tenha sido essa marca selecionada... 
Response.Write "case '" & rsClube("id") & "':" & vbcrlf

'Apagamos tudo o que tem na caixa dos carros!
Response.Write "form.Jogadores.length=0;" & vbcrlf 

'Abrimos todos os carros relativos a essa marca!
SqlJogadores = "SELECT id, NomeJogador, Foto1, Posicao FROM Jogadores WHERE idClube LIKE '" & rsClube("id")& "' ORDER BY Gols & Cartao_A & Cartao_V DESC" 
Set rsJogadores = Conexao.Execute ( SqlJogadores )

'Fazemos um loop por todos os carros, criando uma nova opção no SELECT! 
i = 0 
While NOT rsJogadores.EoF

Response.Write "form.Jogadores.options[" & i & "] = new Option('" & rsJogadores("NomeJogador") & "','" & rsJogadores("Foto1") & "');" & vbcrlf 
i=i+1

rsJogadores.MoveNext
Wend

'Imprimos um break! (Verifique tutoriais de JavaScript, se tiverem alguma dúvida da sua utilização! 
Response.Write "break;" & vbcrlf

'Próxima marca! 
rsClube.MoveNext 
Wend 

'Fecha chaves do switch e da função! E fecha o script! 
Response.Write "}}" & vbcrlf & "</script>" & vbcrlf 

End Function
%> 


<%
'Criando conexão com o banco de dados! 
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "Provider=Microsoft.Jet.OleDB.4.0;Data Source=" & Server.MapPath("../Dados/Amador_2015.mdb")

'Abrindo a tabela MARCAS!
Sql = "SELECT * FROM Clube ORDER BY P Desc" 
Set Rs = Conexao.Execute ( Sql ) 
%> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br" xml:lang="pt-br">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
<% EscreveFuncaoJavaScript ( Conexao ) %>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript" language="javascript"></script>

<script language="javascript">
	function set(obj, v){
		$('#' + obj).val(v);	
	}
	function set2(obj, v){
		$('#' + obj).val(v);	
	}
</script>

</head>
<body>
<form name="iMasters">

<select name="NomeClube" onChange="javascript:atualizajogadores(this.form);">
<option value="">Escolha o Time</option>
<% While NOT Rs.EoF %> 
<option value="<% = Rs("id") %>"><% = Rs("NomeClube") %></option>
<% Rs.MoveNext %> 
<% Wend %> 
</select>
<input name="brasao" type="text" id="mytxt1" onKeyUp="set1('myddl1', this.value);" value="" />  
<br><br>

<select name="Jogadores" id="myddl" onChange="set2('mytxt', this.value)">>
</select>
<input name="Foto" type="text" id="mytxt" onKeyUp="set2('myddl', this.value);" value="" /> + Posição <input name="Foto" type="text" id="mytxt" onKeyUp="set2('myddl', this.value);" value="" />
 <br/>   <br/>   <br/>   <br/>   <br/> 

 
</form>
</body>
</html> 
<%
'Fechando os objetos! 
Rs.Close
Set Rs = Nothing

Conexao.Close
Set Conexao = Nothing 
%> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso esse código...

 

No seu caso vc escreveu a

Function EscreveFuncaoJavaScript ( Conexao )
uma unica vez e funcionou para os 11 campos ou teve que repetir a função 11 vezes?

 

Mas acho que chamando a função

javascript:atualizajogadores(this.form);
em todos os onChange dos selects funciona.

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.