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

Montar url com variáveis


Evandro Domingues

Pergunta

Eu tenho uma página, index.asp.

Ela inicial com a seleção total dos registros.

Eu tenho um combo onde faço a filtragem dos generos então a url passa a ser index.asp?f=genero

Eu posso também alterar a ordenação dos registros, selecionando no combobox... então a url ficaria index.asp?o=ordem.

Mas como faço, caso a url já esteja com a variável f, para incluir no final a variável o, então ficaria assim

index.asp?f=genero&o=ordem ou index.asp?o=ordem&f=genero

Eu tenho uma página, index.asp.

Ela inicial com a seleção total dos registros.

Eu tenho um combo onde faço a filtragem dos generos então a url passa a ser index.asp?f=genero

Eu posso também alterar a ordenação dos registros, selecionando no combobox... então a url ficaria index.asp?o=ordem.

Mas como faço, caso a url já esteja com a variável f, para incluir no final a variável o, então ficaria assim

index.asp?f=genero&o=ordem ou index.asp?o=ordem&f=genero

Estou postando o código para facilitar o entendimento.

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
<%
var MM_catalogo_STRING = "dsn=catalogo;"
%>
<%
var rsFilmes__MMColParam1 = String(Request.QueryString("f"));
var rsFilmes__MMColParam2 = String(Request.QueryString("o"));
var rsFilmes_cmd = Server.CreateObject ("ADODB.Command");
rsFilmes_cmd.ActiveConnection = MM_catalogo_STRING;
rsFilmes_cmd.CommandText = "SELECT * FROM FILMES";
if ((rsFilmes__MMColParam1 != "") && (rsFilmes__MMColParam1 != "undefined")) {
  rsFilmes_cmd.CommandText = rsFilmes_cmd.CommandText + " WHERE GENERO = ?";
}
if ((rsFilmes__MMColParam2 != "") && (rsFilmes__MMColParam2 != "undefined")) {
  rsFilmes_cmd.CommandText = rsFilmes_cmd.CommandText + " ORDER BY NOME ASC";
} else {
  //aqui estou repetindo a mesma linha no else apenas
  //para encurtar o código... alí vai ter um else if
  //e para cada valor da tag select será setado uma ordenação dos dados.
  rsFilmes_cmd.CommandText = rsFilmes_cmd.CommandText + " ORDER BY NOME ASC";
}
rsFilmes_cmd.Prepared = true;
if (rsFilmes__MMColParam1 != "" && rsFilmes__MMColParam1 != "undefined") {
  rsFilmes_cmd.Parameters.Append(rsFilmes_cmd.CreateParameter("param1", 5, 1, -1, rsFilmes__MMColParam1));
}
if (rsFilmes__MMColParam2 != "" && rsFilmes__MMColParam2 != "undefined") {
  rsFilmes_cmd.Parameters.Append(rsFilmes_cmd.CreateParameter("param2", 5, 1, -1, rsFilmes__MMColParam2));
}
var rsFilmes = rsFilmes_cmd.Execute();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
&lt;script type="text/javascript">
  function filtragenero(filtro) {
    //Esta é a função do filtro... ela está funcionando perfeitamente.
    if (window.XMLHttpRequest) {
      xmlhttp=new XMLHttpRequest();
    } else {
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        document.getElementById("tudo").innerHTML=xmlhttp.responseText;
      }
    }
    if (filtro == "") {
      xmlhttp.open("GET","index.asp",true);
      xmlhttp.send();
    } else {
      if (filtro == "99") {
        xmlhttp.open("GET","index.asp",true);
        xmlhttp.send();
        } else {
        xmlhttp.open("GET","index.asp?f="+filtro,true);
        xmlhttp.send();
      }
    }
  }
  function ordenaresultado(ordem) {
    //Esta será a função de ordenação...
    //aqui é que está começando a dúvida...
    //não sei como fazer... me ajudem!!!
    if (window.XMLHttpRequest) {
      xmlhttp=new XMLHttpRequest();
    } else {
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        document.getElementById("tudo").innerHTML=xmlhttp.responseText;
      }
    }
    if (ordem == "") {
      xmlhttp.open("GET","index.asp",true);
      xmlhttp.send();
    } else {
      if (filtro == "0") {
        xmlhttp.open("GET","index.asp",true);
        xmlhttp.send();
        } else {
        xmlhttp.open("GET","index.asp?o="+ordem,true);
        xmlhttp.send();
      }
    }
  }
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>.:: Catálogo On-Line ::.</title>
&lt;script language="javascript" src="js/ajax.js"></script>
</head>
<body>
<div id="tudo">
  <div id="ferramentas">
    <table width="100%" border="0" cellpadding="0" cellspacing="0" id="tbl_ferramentas">
      <tr>
        <form action="index.asp" method="post" name="frm_ferramentas" target="_self" id="frm_ferramentas">
          <td width="11%">Filtragem</td>
          <td width="39%">
            <label>
              <select name="slt_filtragem" id="slt_filtragem" onchange="filtragenero(this.options[this.selectedIndex].value);">
                <option value="" selected="selected" > </option>
                <option value="99">Todos</option>
                <option value="0" >Não Classificados</option>
                <option value="1" >Ação</option>
                <option value="2" >Animação</option>
                <option value="3" >Aventura</option>
                <option value="4" >Bíblico/Religião</option>
                <option value="5" >Comédia</option>
                <option value="6" >Documentário</option>
                <option value="7" >Drama</option>
                <option value="8" >Épico</option>
                <option value="9" >Faroeste</option>
                <option value="10">Ficção</option>
                <option value="11">Guerra</option>
                <option value="12">Musical</option>
                <option value="13">Policial</option>
                <option value="14">Romance</option>
                <option value="15">Show</option>
                <option value="16">Suspense</option>
                <option value="17">Telenovela</option>
                <option value="18">Terror</option>
              </select>
            </label>
          </td>
          <td width="12%">Ordenação</td>
          <td width="38%">
            <label>
              <select name="slt_ordenacao" id="slt_ordenacao" onchange="ordenaresultado(this.options[this.selectedIndex].value);">
                <option value="" selected="selected" > </option>
                <option value="0" >Ordem Alfabética</option>
                <option value="1" >Data Lançamento Crescente</option>
                <option value="2" >Data Lançamento Decrescente</option>
                <option value="3" >Data Aquisição</option>
                <option value="4" >Código</option>
                <option value="5" >Duração Crescente</option>
                <option value="6" >Duração Decrescente</option>
              </select>
            </label>
          </td>
        </form>
      </tr>
    </table>
  </div>
  <div id="mainContent">
    <h1 align="left">Filmes...</h1>
    <% if (rsFilmes.EOF && rsFilmes.BOF) { %>
      <div align="left">
        <table width="100%" border="0" align="center" cellpadding="2" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
          <tr>
            <td>
              <div align="center">
                <h2>Nenhum Título Encontrado!!!</h2>
              </div>
            </td>
          </tr>
        </table>
      </div>
    <% } %>
    <% if (!rsFilmes.EOF || !rsFilmes.BOF) { %>
      <% while (!rsFilmes.EOF) {%>
        <p><%=(rsFilmes.Fields.Item("COD").Value)%>   -   <%=(rsFilmes.Fields.Item("NOME").Value)%></p>
      <% rsFilmes.MoveNext();}%>
    <%}%>
  </div>
  <div id="footer"></div>
</div>
</body>
</html>
<%
rsFilmes.Close();
%>

A minha dificuldade está nas funções:

filtragenero(filtro)

ordenaresultado(ordem)

Espero que tenham entendido e possam me ajudar.

Vlw.

Pessoal, me dá uma força... pelo menos uma luz de que caminho devo seguir, ou se tem algum exemplo que posso utilizar para estudar e adaptar... pesquisei, mas não encontrei nada.

A minha dificuldade está nas funções:

filtragenero(filtro)

ordenaresultado(ordem)

conforme código que postei acima.

Vlw.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

apesar de ta postado na area errada...

f=request.querystring("f")

o=request.querystring("o")

não vejo segredo aqui .. pois um if já mata a questão

url="index.asp"

if f<>"" then url=url&"?f="&f

if o<>"" then

if f<>"" then

url=url&"?f="&f&"o="&o

else

url=url&"?o="&o

endif

end if

[code]

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