Bom noite pessoal... to apanhando aqui ao fazer uma requisição ao meu banco... trata-se de um combo dinamico onde o usuario escolhe a linha do produto, nisso, é disparado o evento que envia a ID da linha a outra página, onde é trabalho para retornar o valor do segundo combo, o de produtos. O problema é que ele retorna vazio, e existem zilhoes de informações no banco. alguém pode me ajudar?
arquivo "listagem .asp" 'trabalha a informação e retorna para a primeira pagina
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="conexao.asp"-->
<%
'RECEBE PARÃMETRO
linha = request.Form("linha")
'QUERY
set linha=con.execute("SELECT * FROM Linha WHERE ID = "&linha)
Linha = linha("Linha")
set print=con.execute("SELECT * FROM Cadastro WHERE Linha = '"&Linha&"' ORDER BY Produtos ASC")
ID = print("ID")
Produto = print("Produto")
'XML
xml = "<%xml version=\'1.0\' encoding=\'ISO-8859-1\'%>\n";
xml .= "<produto>\n";
'PERCORRE ARRAY
while not print.eof
{
codigo = ID
descricao = Produto
xml .= "<produtos>\n";
xml .= "<codigo>".codigo."</codigo>\n";
xml .= "<descricao>".descricao."</descricao>\n";
xml .= "</produtos>\n";
}
print.movenext
wend
xml.= "</produto>\n";
'CABEÇALHO
Header("Content-type: application/xml; charset=iso-8859-1");
'PRINTA O RESULTADO
response.Write(xml)
%>
Página "produto.asp" 'busca onde o combo deve ser preenchido, mas retorna vazio....
<script language="JavaScript">
function Dados(valor) {
//verifica se o browser tem suporte a ajax
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex) {
try {
ajax = new XMLHttpRequest();
}
catch(exc) {
alert("Esse browser não tem recursos para uso do Ajax");
ajax = null;
}
}
}
//se tiver suporte ajax
if(ajax) {
//deixa apenas o elemento 1 no option, os outros são excluídos
document.frmAjax.listProdutos.options.length = 1;
idOpcao = document.getElementById("opcoes");
ajax.open("POST", "listagem.asp", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange = function() {
//enquanto estiver processando...emite a msg de carregando
if(ajax.readyState == 1) {
idOpcao.innerHTML = "Carregando...!";
}
//após ser processado - chama função processXML que vai varrer os dados
if(ajax.readyState == 4 ) {
if(ajax.responseXML) {
processXML(ajax.responseXML);
}
else {
//caso não seja um arquivo XML emite a mensagem abaixo
idOpcao.innerHTML = " Primeiro selecione a linha ";
}
}
}
//passa o código do estado escolhido
var params = "linha="+valor;
ajax.send(params);
}
}
function processXML(obj){
//pega a tag cidade
var dataArray = obj.getElementsByTagName("produto");
//total de elementos contidos na tag cidade
if(dataArray.length > 0) {
//percorre o arquivo XML paara extrair os dados
for(var i = 0; i < dataArray.length; i++) {
var item = dataArray[i];
//contéudo dos campos no arquivo XML
var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
idOpcao.innerHTML = " Selecione uma das opções abaixo ";
//cria um novo option dinamicamente
var novo = document.createElement("option");
//atribui um ID a esse elemento
novo.setAttribute("id", "opcoes");
//atribui um valor
novo.value = codigo;
//atribui um texto
novo.text = descricao;
//finalmente adiciona o novo elemento
document.frmAjax.listProdutos.options.add(novo);
}
}
else {
//caso o XML volte vazio, printa a mensagem abaixo
idOpcao.innerHTML = " Voltou vazio ";
}
}
</script>
<form action="busca.asp" method="post" name="frmAjax">
<table width="93%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="25%" height="38"> </td>
<td width="75%"> </td>
</tr>
<tr>
<td height="22"> </td>
<td><div align="right">
<%
set print=con.execute("SELECT * FROM Linha ORDER BY ID ASC")
Linha = print("Linha")
ID = print("ID")
%>
<select name="listLinhas" id="listLinhas" style="width:200" onChange="Dados(this.value);">
<option value="0">Selecine a Linha</option>
<%
lin = ""
while not print.eof
%>
<option value="<% =print("ID")%>"><% =print("Linha")%></option>
<%
print.MoveNext
wend
%>
</select>
</div></td>
</tr>
<tr>
<td height="30"> </td>
<td><div align="right">
<select name="listProdutos" id="listProdutos" style="width:200">
<option id="opcoes" value="0"></option>
</select>
</div></td>
</tr>
<tr>
<td height="27" colspan="2"><div align="right">
<input type="submit" name="Submit" value="Localizar" style="background-color:#999999; color:#FFFFFF; font-family:Verdana; font-size:12px; border:thin; border-color:#999999; width:80">
</div></td>
</tr>
</table>
</form>
Pergunta
Renato Cast
Bom noite pessoal... to apanhando aqui ao fazer uma requisição ao meu banco... trata-se de um combo dinamico onde o usuario escolhe a linha do produto, nisso, é disparado o evento que envia a ID da linha a outra página, onde é trabalho para retornar o valor do segundo combo, o de produtos. O problema é que ele retorna vazio, e existem zilhoes de informações no banco. alguém pode me ajudar?
arquivo "listagem .asp" 'trabalha a informação e retorna para a primeira pagina
Página "produto.asp" 'busca onde o combo deve ser preenchido, mas retorna vazio....Bom pessoal, é isso ai... espero ajuda.. vlw
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.