Ir para conteúdo
Fórum Script Brasil

sabino

Membros
  • Total de itens

    43
  • Registro em

  • Última visita

Tudo que sabino postou

  1. sabino

    Instrução SQL

    Bom dia! Acho que podemos ajudar nisso, mas antes de qualquer coisa tenho algumas dúvidas... 1) A combo é populada com valores existentes... aí o usuário digita o filtro em um campo texto ou seleciona a(as) as classes desejadas? 2) Não entendi o problema do registro que ainda não foi salvo: os classes existentes não foram exibidas na primeira combo? Ou seja, não são registros pré-existentes no banco?
  2. Bom dia pessoal! Leili, uma opção é colocar o primeiro option do select com um texto do estilo "Selecione a cidade" e verificar se o selectedIndex do select igual a zero, por exemplo.... &lt;script> ... //inserir essa validação junto com as outras... if (document.getElementById('cboCidade').selectedIndex == 0) { alert('Por favor, selecione a cidade.'); return false; } ... </script> ... <select id='cboCidade' name='cboCidade> <option value='0'>Selecione a cidade</option> .... </select> ... Espero que isso ajude! []' a todos!
  3. Bom dia pessoal! Pelo que entendi, o Leonardo deseja que, ao clicar em um radio button o sistema seja direcionado para a pagina X e ao clicar em outro seja direcionado para Y.. se for isso mesmo, é possível colocar uma função no onclick do radio que redireciona para a página desejada ou definir uma variável que seja alterada no onclick para que a página seja redirecionada em um onsubmit (por exemplo). Seria alguma coisa assim... Opção 1) &lt;script> function defineDestino(strURL, lngCodCliente) { window.location.href = strURL + "?CodCliente=" + lngCodCliente; } </script> <input type="radio" value="<%=rstSearch("cod_estabel")%>" ... onclick="defineDestino('Detalhes.asp', this.value);"> <input type="radio" value="<%=rstSearch("cod_estabel")%>" ... onclick="defineDestino('Produtos.asp', this.value);"> Opção 2) Opção 1) &lt;script> var strDestino = ""; var lngCodCliente = 0; function defineDestino(strURL, lngCodigo) { strDestino = strURL; lngCodCliente = lngCodigo; return true; } function redireciona(objForm) { objForm.action = strDestino + "?CodCliente=" + lngCodCliente; return true; } </script> <form ... onsubmit="return redireciona(this);"> <input type="radio" value="<%=rstSearch("cod_estabel")%>" ... onclick="return defineDestino('Detalhes.asp', this.value);"> <input type="radio" value="<%=rstSearch("cod_estabel")%>" ... onclick="return defineDestino('Produtos.asp', this.value);"> Espero que isso ajude! []' a todos!
  4. Pessoal, A variável que tem o IP do usuário chama-se REMOTE_ADDR (Request.ServerVariables("REMOTE_ADDR") []'s a todos!
  5. sabino

    formatando valor

    E aí pessoal? Notax, pelo que você descreveu, os valores estão vindo com vírgula para separar as casas decimais, e deveriam vir com ponto: 4.56 ao invés de 4,56. Se for isso mesmo, o replace deveria funcionar, só não entendi porque colocar Len(...): len(replace(valor(i),",",".")) Parece que o correto seria simplesmente: replace(valor(i),",",".") Espero que ajude! []'s a todos!
  6. Pessoal, Além da sugestão do jothaz, pode ser mais uma coisa: um erro comum é o form estar postando com o método GET e tentarmos pegar o FORM. Outra coisa que pode ajudar é a depuração com a instrução STOP. Aí você terá certeza, em tempo de execução, dos valores das variáveis. []'s a todos!
  7. Pessoal, apenas para esclarecer... A parametrização é um meio seguro que IMPEDE tentativas de adulteração da query, exemplo... Na consulta simples abaixo que pode ser usada para verificar a existência de um login de usuário... strSQL = " SELECT CodUsuario FROM Usuarios WHERE Login = '" & strLogin & "'" Pode ser inserido o SQL Injection através de valores maliciosos, mas inserindo parâmetros isso não será tão fácil. Seria algo parecido com o trecho abaixo... ... strSQL = " SELECT CodUsuario FROM Usuarios WHERE Login = @Login " Call objCommand.Parameters.Append("@Login", 200, 1, Len(strLogin), strLogin) ... Nesse caso, não importa o que seja passado em "strLogin", porque o valor não vai alterar o corpo da query. Quando à substituição de aspa simples, é um bom método e impede também os ataques que eu já vi ou ouvi falar, mas limita a inserção de dados com aspa simples no banco. Ao invés de eliminar a aspa simples, a sugestão é o mesmo replace mas trocando aspa simples por duas aspas simples. Também funciona e o caractere será inserido normalmente. Outra vantagem do uso de parâmetros é que não é necessário padronizar o site inteiro, apenas vamos nos preocupar em criar os parâmetros da query na camada de acesso a dados, o tratamento fica centralizado, não importando o tamanho do site. Isso é particularmente útil quando estamos trabalhando em equipe. []'s a todos!
  8. No banco guestbook1 existe uma tabela com o nome guestbook1 também? Parece ser esse o problema: não existir a tabela.
  9. Beleza, parou de dar erro. Os problemas agora são: 1) O arquivo deleting.asp está pegando request.querystring e por isso pega apenas o código que foi passado na URL no action do form (deleting.asp?id=...). O correto é utilizar, nesse caso, request.form para pegar os valores postados no form e não na querystring; 2) No arquivo deleting.asp, a instrução SQL ainda está com LINK_ID = ... o correto é LINK_ID IN (...) para deletar mais de um. Espero que ajude!
  10. O trecho de código que tem onsubmit é esse: <form id="frmDeletar" name="frmDeletar" action="deletar.asp" onsubmit="critica(this)" method="post"> Ao invés de onsubmit="critica(this)" o certo é onsubmit="return critica(this)" Esta postando vazio, por isso esta dando o erro. Se o request vier vazio, vai ficar LINK_ID = na query sem valor nenhum, ai da erro mesmo.
  11. py2tz, Repare no código que eu postei que existe um função associada ao evento onsubmit do form, justamente para dificultar a postagem se não tiver nenhum item selecionado, isso é importante para prevenir o erro na instrução sql. Deve ser isso que está causando o problema>: não está validando se em pelo menos um item selecionado. Outre coisa: a associação do evento onsubmit deve ser onsubmit="return ...". Esqueci o return, mas aqui no Firefox funcionou mesmo assim quando testei antes de postar. []'s!
  12. Foi mal, postei sem querer rsrs :-) já alterei o post para o codigo correto, ele não faz nada, so posta os valores dos itens para exlusao ou qualquer coisa que a pessoa queira fazer, so um esquema do funcionamento. []'s!
  13. <% Dim strAlert Dim strLinks : strLinks = Request.Form("chkLink") If Len(strLinks) > 0 Then strAlert = "alert('Itens selecionados: " & strLinks & "');" End If %> <html> <head> &lt;script language="javascript" type="text/javascript"> <%=strAlert%> function critica(obj) { for (var i = 0; i < obj.chkLink.length; i ++) { if (obj.chkLink[i].checked) { return true; } } alert("Selecione pelo menos um item para exclusão"); return false; } function selecionarTodos(check) { var objChk = document.getElementsByName("chkLink") for (var i = 0; i < objChk.length; i ++) { objChk[i].checked = check; } } function deletarLink(id) { selecionarTodos(false); document.getElementById("chk" + id).checked = true; document.frmDeletar.submit(); } </script> </head> <body> <form id="frmDeletar" name="frmDeletar" action="deletar.asp" onsubmit="critica(this)" method="post"> <table> <tr> <td> <input type="checkbox" id="chkSelecionarTodos" onclick="selecionarTodos(this.checked)"/> </td> <td> Selecione os liks para exclusão </td> </tr> <% Dim i : For i = 0 To 9 %> <tr> <td> <input type="checkbox" value="<%=i%>" id="chk<%=i%>" name="chkLink"/> </td> <td> <a href="java script:deletarLink(<%=i%>); void(0);">Link<%=i%></a> </td> </tr> <% Next %> <tr> <td colspan="2" align="right"> <input type="submit" value="Excluir" /> </td> </tr> </table> </form> </body> </html>
  14. py2tz, O recurso que você implementou pode ficar basicamente o mesmo. Se eu entendi o que deseja, seria assim: 1) Mudar a instrução DELETE utilizando IN, por exemplo : DELETE FROM LINKS WHERE LINK_ID IN (" + Replace(spDeleteLinks__id, "'", "''") + ")" Isso permitirá que a instrução apague mais de um registro na tabela. 2) Na caixa que selecionará todas as outras, basta implementar uma função que altere o atributo "checked" das demais para "true" (marcando) ou "false" (demarcando) que será chamada no evento onclick da caixa. Dessa forma, quando postar vão todos os códigos que foram selecionados para formar a instrução SQL. Qualquer dúvida, é só postar! Espero que te ajude []'s
  15. hicarocastro, A iniciativa é interessante, mas é mais simples evitar ataques através da parametrização dos campos, que impede qualquer tentativa de alterar o conteúdo de uma instrução SQL. []'s a todos!
  16. Marianne Isso acontece porque, desse jeito, o OR acaba anulando o AND: isso E aquilo OU 'aquilo outro' Pelo que você relatou, o uso de parênteses vai ajudar na precedência: isso E (aquilo OU 'aquilo outro') Assim há garantia que a primeira condição será avaliada separadamente. Espero que ajude! []'s!
  17. sabino

    For na queystring

    Tem jeito sim, por exemplo Dim strFieldName For each strFieldName in Request.QueryString Response.Write strFieldName & " = " & Request.QueryString(strFieldName).item & "<br />" Next Espero que ajude! []'s!
  18. sabino

    erro em formulario

    Esse erro ocorre quando algum endereço está mal formatado. Veja nesse artigo um exemplo de como corrigir o problema: http://bytes.com/forum/thread433129.html. []'s a todos!
  19. sabino

    Passagem de parametros em ASP

    Para fazer isso, pode ser feito assim: <html> <head> </head> <body> <iframe src="<%=Request.QueryString("url")%>" frameborder="0" marginheight="0" marginwidth="0"></iframe> </body> </html> Para mais de um parâmetro, podem ser utilizados varios iframes, um para cada endereço. Espero que isso ajude! []'s a todos!
  20. Tite, Colocando o código do update dessa forma ele executará de qualquer jeito mesmo, mas o response.write so aparece quando o div é exibido. Isso é o normal, porque o fato do div estar com display none NÃO impede que o código ASP seja executado, porque ele é executado, nesse caso, ANTES da página ser enviada. Para fazer o update APENAS quando o div é fechado, você deve usar AJAX ou então abrir um popup quando fechar o div executando o update dentro do popup. Espero que isso ajude! []'s a todos!
  21. Pessoal, é do jeito que a andreia_sp postou, mas não tão compactado com o smez quer... <% function listar() Set busca = createobject("adodb.recordset") Set busca.activeconnection = abredb SQL = "SELECT DISTINCT Nome FROM Foto" busca.open sql while not busca.eof listar = listar & "'" & busca("nome") & "'," busca.movenext wend if len(listar) > 0 then listar = mid(listar, 1, len(listar) - 1) end if end function %> &lt;script> var customarray=new Array(<%=listar()%>); </script> Parece que assim resolve. []'s a todos!
  22. danyort, Você pode fazer um split na string e ver quantos elementos existirão na array. str = "isso é um exemplo" 'Obtendo o número de espaços na string: lngEspacos = UBound(Split(str, " ")) Acho que isso resolve! []'s a todos!
  23. sabino

    Ajuda com agrupamentos

    stolipuppy, veja se é mais ou menos isso que você quer fazer... Considere que as chamadas são armazenadas com um código, data e outras informações (usuário, duração, etc etc) CodChamada Data 1 02/03/2008 10:00 2 02/02/2008 13:45 . . . Se você quer saber quantas chamadas foram realizadas agrupadas por data, parece que seria algo assim... 1) Criar uma view (chamaremos de vwChamada) com a query parecida com... SELECT CodChamada , RIGHT('0' + CONVERT(VARCHAR(4), DATEPART(DAY, Data)), 2) + '/' + RIGHT('0' + CONVERT(VARCHAR(4), DATEPART(MONTH, Data)) , 2) + '/' + CONVERT(VARCHAR(4), DATEPART(YEAR, Data)) AS DataSemHora FROM Chamada 2) Agora, podemos consultar a view com SELECT COUNT(*) AS NumeroChamadas, DataSemHora FROM vwChamada GROUP BY DataSemHora Isso deve funcionar! Espero que ajude! []'s!
  24. sabino

    [Resolvido] Query muito lenta

    E aí pessoal! O webdeveloper tem razão. O melhor é, ao invés de... lstEnsinoMedio = lstEnsinoMedio & " <option value='" & oRs("COD_INSTITUICAO_ENSINO_MEDIO") & "' value2='" & oRs("SGL_UF") & "' value3='" & oRs("NOM_INSTITUICAO_ENSINO_MEDIO") & "' " & seleciona & ">" & oRs("NOM_INSTITUICAO_ENSINO_MEDIO") & " - " & oRs("SGL_UF") & "</option>" usar... Response.Write " <option value='" & oRs("COD_INSTITUICAO_ENSINO_MEDIO") & "' value2='" & oRs("SGL_UF") & "' value3='" & oRs("NOM_INSTITUICAO_ENSINO_MEDIO") & "' " & seleciona & ">" & oRs("NOM_INSTITUICAO_ENSINO_MEDIO") & " - " & oRs("SGL_UF") & "</option>" Mas isso pode não ser suficiente. Com não terá paginação, é necessário descarregar o buffer com o método Response.Flush a cada, por exemplo, 100 registros. Isso evitará o estouro do buffer. Espero ter ajudado! []'s a todos!
  25. sabino

    Link em uma <tr>

    Fala pessoal, Guilherme, para fazer com que a TR funcione como um link, basta usar o onclick, por exemplo: ... <script language='javascript' type='text/javascript> function minhaFuncao() { window.location.href='minhaURL.html'; } </script> ... <tr onclick='minhaFuncao();'>...</tr> Se quisermos fazer alguma coisa quando o mouse está sobre a TR, então utilizamos o evento onmouseover em conjunto com o onmouseout (para voltar ao estado original)... ... <script language='javascript' type='text/javascript> function minhaFuncaoOnMouseOver(objTR) { objTR.style.color='#DDDDDD'; } function minhaFuncaoOnMouseOut(objTR) { objTR.style.color='#FFFFFF'; } function minhaFuncaoOnClick() { window.location.href='minhaURL.html'; } </script> ... <tr onClick='return minhaFuncaoOnClick();' onMouseOver='return minhaFuncaoOnMouseOver(this);' onMouseOut='return minhaFuncaoOnMouseOut(this);'>...</tr> Agora um exemplo concreto... <html> <head> <script language='javascript' type='text/javascript'> function minhaFuncaoOnMouseOver(objTR) { objTR.style.background='#DDDDDD'; } function minhaFuncaoOnMouseOut(objTR) { objTR.style.background='#FFFFFF'; } function minhaFuncaoOnClick() { window.location.href='minhaURL.html'; } </script> </head> <body> <table border='1' cellspacing='0' width='100%'> <tr onClick='return minhaFuncaoOnClick();' onMouseOver='return minhaFuncaoOnMouseOver(this);' onMouseOut='return minhaFuncaoOnMouseOut(this);' > <td> conteúdo da tr... </td> </tr> </table> </body> </html> Espero que isso ajude! []'s a todos!
×
×
  • Criar Novo...