Jump to content
Fórum Script Brasil
  • 0

Montar url com variáveis


Evandro Domingues

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...