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

Mais de uma variável


marvi

Pergunta

Olá pessoal,

Eu tenho um script que leva uma variavel para uma página e lá é testada na query, mas eu queria levar mais de um valor nessa variável, como faço?

Veja:

function RetornoAjax(id, url, container)

{

if (id == "")

{

document.getElementById("estados").innerHTML = "<select></select>";

document.getElementById("cidades").innerHTML = "<select></select>";

document.getElementById("zona").innerHTML = "<select></select>";

document.getElementById("profs").innerHTML = "<select></select>";

return

}

var xmlHttp=GetXmlHttpObject()

if (xmlHttp==null)

{

alert ("Este browser não suporta HTTP Request")

return

}

var url=url;

url=url+"?id="+id;

url=url+"&sid="+Math.random();

xmlHttp.onreadystatechange=function()

{

if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")

{

document.getElementById(container).innerHTML=xmlHttp.responseText;

}

}

xmlHttp.open("GET",url,true)

xmlHttp.send(null)

}

function GetXmlHttpObject()

{

var objXMLHttp=null

if (window.XMLHttpRequest)

objXMLHttp=new XMLHttpRequest()

else if (window.ActiveXObject)

objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")

return objXMLHttp

}

--------------------------------------------------

Como faço para levar mais um valor nessa variável? url=url+"?id="+id;

Pois na outra página terá:

id = request.querystring("id")

sql = "select * from cidades where id_estado ="& id &" order by cidade desc"
set tab = conexao.execute(sql)

Alguém pode ajudar?

Obs: Aproveitando, o codigo em script está pegando só o value do select, isso? Como faço para pegar o value e o nome que fica no select?

Obrigado!

Marcelo

Editado por fercosmig
Adicionar tag's
Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Pode deixar, resolvir assim:

url=url+"?id="+id;url=url+"?"+id;

id = split(Request.QueryString("id"),"?")
info = id(0)
info1 = id(1)

Mas a questão é que pego o value do select, sabem agora como pegar o nome do select para eu fazer duas comparações na query? Sabe qual comando no script que pega isso?

obrigado!

Editado por fercosmig
Adicionar tag's
Link para o comentário
Compartilhar em outros sites

  • 0

Conseguir mais uma etapa mas surgiu outro erro:

Mas a questão é que pego o value do select, sabem agora como pegar o nome do select para eu fazer duas comparações na query? Sabe qual comando no script que pega isso?

Resposta:

onchange="RetornoAjax(this.value, 'estados.asp', 'estados')"
troca para
onchange="RetornoAjax(this.value, [b]this.text[/b], 'estados.asp', 'estados')"
E no JS troque:
function RetornoAjax(id, url, container)
{

Por:

function RetornoAjax(id,txt, url, container)

{

Só que essa variavel txt só gera um valor: undefined, por que?

Editado por fercosmig
Adicionar tag's
Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal estou usando a seguinte função

onchange="RetornoAjax(this.value, this.text, 'estados.asp', 'estados')" Vejam o This.text

Função

function RetornoAjax(id, txt, url, container)
{
    if (id == "")
    {
        document.getElementById("estados").innerHTML = "<select></select>";
        document.getElementById("cidades").innerHTML = "<select></select>";
        document.getElementById("zona").innerHTML = "<select></select>";
        document.getElementById("profs").innerHTML = "<select></select>";
        return
    }

var xmlHttp=GetXmlHttpObject()

if (xmlHttp==null)
{
     alert ("Este browser não suporta HTTP Request")
     return
}

var url=url;
url=url+"?id="+id;url=url+"?"+txt;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=function()
{
     if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
     {
         document.getElementById(container).innerHTML=xmlHttp.responseText;
     }
}
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function GetXmlHttpObject()
{
var objXMLHttp=null

     if (window.XMLHttpRequest)
         objXMLHttp=new XMLHttpRequest()
     else if (window.ActiveXObject)
         objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")

return objXMLHttp
}

Mas o meu this.txt está levando um valor undefined, por que?

Desde já agradeço

Marcelo

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal,

coloquei esse comando

var indice = document.form1.cidades.selectedIndex

var txt=document.form1.cidades.options[indice].text

e pegou o valor do pais, no select, mas não quero o valor do selecte paises, quero o valor do select estado e / ou cidades, como faço?

Pois coloquei esse codigo acima na função e dava: é nulo ou não é um objeto, pois só funciona se eu colocar o select pais: document.form1.paises.selectedIndex

E agora?

<form method="POST" action="resultado.asp" name="form1">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
  <tr>
    <td width="100%"><font color="#3A5278" face="Arial Narrow" size="2">Países:</font></td>
  </tr>
  <tr>
    <td width="100%">
    <select name="paises" id="paises" onchange="RetornoAjax(this.value, 'estados.asp', 'estados')" style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080">
<option value="">-Selecione-</option>
<% while not tab.eof %>
<option value="<%= tab("id_pais")%>"><%= tab("pais")%></option>
<% tab.movenext
     wend
%>
</select></td>
  </tr>
  <tr>
    <td width="100%"><font color="#3A5278" face="Arial Narrow" size="2">Estados:</font></td>
  </tr>
  <tr>
    <td width="100%"><div name="estados" id="estados"><select style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080"></select></div></td>
  </tr>
  <tr>
    <td width="100%"><font color="#3A5278" face="Arial Narrow" size="2">Cidades:</font></td>
  </tr>
  <tr>
    <td width="100%"><div name="cidades" id="cidades"><select style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080"></select></div></td>
  </tr>
   <tr>
    <td width="100%"><font color="#3A5278" face="Arial Narrow" size="2">Zona 
    (Cidade de São Paulo):</font></td>
  </tr>

   <tr>
    <td width="100%"><div name="zona" id="zona"><select style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080"></select></div></td>
  </tr>

  <tr>
    <td width="100%"><font color="#3A5278" face="Arial Narrow" size="2">Profissionais:</font></td>
  </tr>
  <tr>
    <td width="100%"><div name="profs" id="profs"><select style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080"></select></div></td>
  </tr>
  <tr>
    <td width="100%">
    <input type="submit" value="Buscar" name="B1" style="color: #FFFFFF; font-size: 10 px; font-family: Verdana; border: 1px solid #808080; background-color: #3A5278"></td>
  </tr>
</table>

</form>
</td>
  </tr>
</table>

Editado por marvi
Link para o comentário
Compartilhar em outros sites

  • 0

pra você usar document.form1.cidade

você precisa nomear o campo q você precisa

se ligo?

document = este documento

form1 = nome do elemento q você quer pegar

como é um formulário então temos filhos

o nó <select name="paises"> tem retorno porque ele tem um nome então o js não se perde

enquanto os outrs não.

outra saída é o "id"

document.getElementById('id q você quer')

mas no seu html você tambem não usa id para quase nenhum ou nenhum elemento dentro dele

OBS.: para mexer com js nomes e ids são essenciais!

Espero ter ajudado! =D

Link para o comentário
Compartilhar em outros sites

  • 0

Sei sobre o que você falou, mas os outros tem nome sim... Veja que no script ele chama uma página e retorna para a original...

Se quero estado ele vai nessa página e devolve para div, acho:

id = split(Request.QueryString("id"),"?")
info = id(0)
info1 = id(1)


sql = "select * from estados where id_pais ="& info &" order by estado desc"
set tab = conexao.execute(sql)
%>
<select name="estados" id="estados" onchange="RetornoAjax(this.value, 'cidades.asp', 'cidades')" style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080">
<option value="">-Selecione-</option>
<% while not tab.eof %>
<option value="<%=tab("id_estado")%>"><%=tab("estado")%></option>
<% tab.movenext
     wend
    conexao.close
    set tab = nothing
%>
</select>

Aí devolve para outra que postei, não há uma identificação?

Link para o comentário
Compartilhar em outros sites

  • 0

mas todos estão assim, que depois é retornado para o que te mostrei que só tem as divs, entendeu?

Tem a seguinte função que faz o trabalho por trás certo, esta função recebe o valor, a pagina que irá processar e o objeto que receberá o conteúdo, certo?

Seu usuário foi e escolheu um estado, o script faz a pesquisa e traz os estados correto? Ai o usuário escolhe um estado e você quer que traga as cidades certo?

É assim, veja esse site: http://www.sbpi.org.br/profissionaislink.asp la tem uns combos para pesquisar país, estado, cidade e profissão... é nesse modelo

Só que no meu, quando for sair a cidade são paulo eu irei mostrar outro combo exibindo: zona leste, sul, norte e etc...

Mas quando for outras cidades, ele pula esse combo e exibi o próximo, já que não tem necessidade de zonas...

Link para o comentário
Compartilhar em outros sites

  • 0

Mudar?

Se quiser te mando o arquivo para ver...

É assim, a index tem:

<script src="funcoes.js" type="text/javascript"></script>

 <select name="paises" id="paises" onchange="RetornoAjax(this.value, 'estados.asp', 'estados')" style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080">
<option value="">-Selecione-</option>
<% while not tab.eof %>
<option value="<%= tab("id_pais")%>"><%= tab("pais")%></option>
<% tab.movenext
  wend
%>
</select>



 </tr>
  <tr>
    <td width="100%"><font color="#3A5278" face="Arial Narrow" size="2">Estados:</font></td>
  </tr>
  <tr>
    <td width="100%"><div name="estados" id="estados"><select style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080"></select></div></td>
  </tr>
  <tr>
    <td width="100%"><font color="#3A5278" face="Arial Narrow" size="2">Cidades:</font></td>
  </tr>
  <tr>
    <td width="100%"><div name="cidades" id="cidades"><select style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080"></select></div></td>
  </tr>
   <tr>
    <td width="100%"><font color="#3A5278" face="Arial Narrow" size="2">Zona 
    (Cidade de São Paulo):</font></td>
  </tr>

   <tr>
    <td width="100%"><div name="zona" id="zona"><select style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080"></select></div></td>
  </tr>

  <tr>
    <td width="100%"><font color="#3A5278" face="Arial Narrow" size="2">Profissionais:</font></td>
  </tr>
  <tr>
    <td width="100%"><div name="profs" id="profs"><select style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080"></select></div></td>
  </tr>
onde seleciona o combo país e assim chama a função original (que atende outros combos): função.js:
function RetornoAjax(id, url, container)
{


 if (id == "")
 {
var txt = "1"
                

                document.getElementById("estados").innerHTML = "<select></select>";
document.getElementById("cidades").innerHTML = "<select></select>";
  document.getElementById("zona").innerHTML = "<select></select>";
  document.getElementById("profs").innerHTML = "<select></select>";

  return


 }




var xmlHttp=GetXmlHttpObject()

if (xmlHttp==null)
{
     alert ("Este browser não suporta HTTP Request")
     return
}

var url=url;
url=url+"?id="+id;url=url+"?"+txt; // nesse txt que fica o nome e não o value do selec, era para ser...

// ele funciona normal no split... a coisa é colocar o valor do nome aí e não outro value igual...
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=function()
{
     if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
     {
         document.getElementById(container).innerHTML=xmlHttp.responseText;
     }
}
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function GetXmlHttpObject()
{
var objXMLHttp=null

     if (window.XMLHttpRequest)
         objXMLHttp=new XMLHttpRequest()
     else if (window.ActiveXObject)
         objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")

return objXMLHttp
}
que chama (pela função acima) a página estado.asp. Isso depois que solecionou o combo país: estado.asp:
id = split(Request.QueryString("id"),"?")
info = id(0)
info1 = id(1)


sql = "select * from estados where id_pais ="& info &" order by estado desc"
set tab = conexao.execute(sql)
%>
<select name="estados" id="estados" onchange="RetornoAjax(this.value, 'cidades.asp', 'cidades')" style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080">
<option value="">-Selecione-</option>
<% while not tab.eof %>
<option value="<%=tab("id_estado")%>"><%=tab("estado")%></option>
<% tab.movenext
  wend
 conexao.close
 set tab = nothing
%>
</select>
que por sua vez chama o combo cidade:
id = split(Request.QueryString("id"),"?")
info = id(0)
info1 = id(1)

sql = "select * from cidades where id_estado ="& id &" and ok <> "& idi &" order by cidade desc"
set tab = conexao.execute(sql)

if not tab.eof then
cidadet=tab("ok")

if cidadet = "True" then

%>
<select name="cidades" id="cidades" onchange="RetornoAjax(this.value, 'zonas.asp', 'zona')" style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080">
<option value="">-Selecione-</option>
<% while not tab.eof %>
<option value="<%= tab("id_cidade")%>"><%= tab("cidade")%></option>
<% tab.movenext
     wend
    conexao.close
    set tab = nothing
%>
</select>

<%else%>
<select name="cidades" id="cidades" onchange="RetornoAjax(this.value, this.text, 'profissionais.asp', 'profs')" style="font-family: Verdana; font-size: 10 px; color: #808080; border: 1px solid #808080">
<option value="">-Selecione-</option>
<% while not tab.eof %>
<option value="<%= tab("id_cidade")%>"><%= tab("cidade")%></option>
<% tab.movenext
     wend
    conexao.close
    set tab = nothing
%>
</select>
<%end if
end if

%>

Editado por marvi
Link para o comentário
Compartilhar em outros sites

  • 0
url=url+"?id="+id;url=url+"?"+id;

id = split(Request.QueryString("id"),"?")

info = id(0)

info1 = id(1)

Isso aí não existe, cuidado.

url=(
    url +"?id="+ id +
    "&nome=" + id2 +
    "&idade=" + id3 +
    "&cep=" + id4
)

Deve usar sempre o & para as demais variáveis. Isso que você fez vai dar erro uma hora ou outra.

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...