Ir para conteúdo

marcelocardoso

Members
  • Total de itens

    1084
  • Registro em

  • Última visita

Tudo que marcelocardoso postou

  1. marcelocardoso

    Google Recaptcha V3 - Param não resgata

    não utilizei no wordpress, mas acredito que consiga sim.... o código acima, é feito em ASP, para backend e html puro para qualquer linguagem além de javascript, então, não utilizo wordpress, mas com certeza, consegue ....
  2. marcelocardoso

    Google Recaptcha V3 - Param não resgata

    olá colegas. depois de tanto quebrar a cabeça com o RECAPTCHA do google, v3. não estou conseguindo resgatar o ID do INPUT hidden que guarda o TOKEN!!!! Segue código HTML <!DOCTYPE html> <html lang="pt_BR"> <head> <meta charset="utf-8"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="ie=edge" http-equiv="X-UA-Compatible"> <title>Google Recaptcha - v3</title> <!-- STYLES CSS --> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/inputmask@3.3.11/css/inputmask.min.css"> <!-- STYLES CSS --> <!-- SCRIPTS JS --> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-form@4.2.2/dist/jquery.form.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/jquery.validate.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/localization/messages_pt_BR.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/additional-methods.min.js"></script> <!-- SCRIPTS JS --> <!-- SCRIPTS RECAPTCHA - SITE KEY --> <script src="https://www.google.com/recaptcha/api.js?render=6LesQewUAAAAAIWQKRKk19yob6G8hx3LEoYXybIC"></script> <!-- SCRIPTS RECAPTCHA - SITE KEY --> <style type="text/css"> *:focus { outline: none !important; } html, body { height: 100%; width: 100%; } body { color: darkgrey; margin: 60px 0px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* google captcha - hidden na tela */ .grecaptcha-badge { display: none !important; } .valid-class { color: #006400; padding-left: 12px; padding-top: 3px; font-size: 15px; display: block; } .error-class { color: #e33d00; padding-left: 12px; padding-top: 3px; font-size: 15px; display: block; } .loading { position: fixed; left: 0px; top: 0px; margin: 0px; width: 100%; height: 100%; display: block; z-index: 999999; opacity: 0.92; -moz-opacity: 0.92; filter: alpha(opacity=98); background-color: #00224b; background-image: url("img/loading.gif"); background-repeat: no-repeat; background-position: 50% 50%; text-align: center; overflow: hidden; font-weight: bold; font-size: 25px; color: white; padding-top: 25%; } </style> </head> <body> <!-- code | formulario --> <section class="container-fluid"> <h1 class="text-center">RECAPTCHA</h1> <h4 class="text-center">GOOGLE v3</h4> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12"> <form id="frm_form_contato" method="post" action="inc/google-form.asp"> <div class="form-group"> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 mb-2"> <label class="control-label" for="campo_nome">Nome</label> <input type="text" id="campo_nome" name="campo_nome" class="form-control" autocomplete="name" placeholder="Digite seu nome"> </div> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 mb-2"> <label class="control-label" for="campo_email">Email</label> <input type="text" id="campo_email" name="campo_email" class="form-control" autocomplete="email" placeholder="Digite seu e-mail"> </div> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 mb-2"> <label class="control-label" for="campo_mensagem">Mensagem</label> <textarea type="text" id="campo_mensagem" name="campo_mensagem" class="form-control" placeholder="Descreva sua mensagem"></textarea> </div> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 mt-4"> <div id="contato_retorno"></div> <button id="btn-form" type="submit" class="btn btn-block btn-md btn-success">ENVIAR</button> </div> </div> <input type="hidden" id="token"> </form> </div> <div id="contato_carregando"></div> </section> <!-- code | formulario --> <!-- GOOGLE reCAPTCHA --> <script type="text/javascript"> "use strict"; //formulario de validacao $("#frm_form_contato").validate({ errorClass: "error-class", validClass: "valid-class", onkeyup: function (element) { this.element(element); }, onfocusout: function (element) { this.element(element); }, rules: { campo_nome: { required: true, minlength: 5, maxlength: 50 }, campo_email: { required: true, minlength: 5, email: true }, campo_mensagem: { required: true, minlength: 5, maxlength: 5000 } }, submitHandler: function (form) { grecaptcha.ready(function () { grecaptcha.execute('6LesQewUAAAAAIWQKRKk19yob6G8hx3LEoYXybIC', { action: 'homepage' }).then(function (token) { $("input#token").attr({ "value": "" + token + "" }); }); }); // A) resgatar variaveis (uma por uma) var form_url = $(this).attr("action"); var form_method = $(this).attr("method"); var form_token = $(this).find('input[name="token"]').val(); var form_nome = $(this).find('input[name="campo_nome"]').val(); var form_email = $(this).find('input[name="campo_email"]').val(); var form_telefone = $(this).find('input[name="campo_telefone"]').val(); var form_mensagem = $(this).find('input[name="campo_mensagem"]').val(); // B) resgatar variaveis (tudo de uma vez) // var form_data = $("#frm_form_contato").serializeArray(); var form_data = { 'campo_nome': $("#campo_nome").val(), 'campo_email': $("#campo_email").val(), 'campo_mensagem': $("#campo_mensagem").val(), 'campo_token': $("#token").val(), }; // ENVIAR FORM com POST // $("form").submit(function (e) { // e.preventDefault(); // var $form = $(this); // $.post($form.attr("action"), $form.serialize()).then(function () {}); // }); //ENVIAR FORM com AJAX $.ajax({ url: $("#frm_form_contato").attr("action"), type: $("#frm_form_contato").attr("method"), data: JSON.stringify(form_data), dataType: 'json', contentType: 'application/json; utf-8', //loading antes do sucesso e do envio beforeSend: function () { $("#btn-form").prop("disabled", false).text('Enviando ...').fadeIn(); $("#contato_carregando").html("<div class='loading'></div>").fadeIn(500); }, //se houver sucesso success: function (response) { setTimeout(function () { $("#contato_carregando").fadeOut(250); }, 3950); setTimeout(function () { $("#contato_retorno").html("<div class='valida_a_certo'>" + response + "</div>").fadeIn(500); }, 4000); setTimeout(function () { $("#contato_retorno").fadeOut(500); $("#btn-form").prop("disabled", false).text('Enviado'); $(form)[0].reset(); }, 10000); }, //se houver sucesso, finaliza complete: function (response) { $('body').fadeTo(4000, '1'); }, //se houver erro error: function (response) { setTimeout(function () { $("#contato_retorno").html("<div class='valida_a_erro'>" + response + "</div>").fadeIn(500); }, 4000); setTimeout(function () { $("#contato_retorno").fadeOut(500); $(form)[0].reset(); }, 10000); }, }); return false; } }); </script> <!-- SCRIPTS RODAPE --> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/js/bootstrap.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/inputmask@3.3.11/dist/jquery.inputmask.bundle.js"></script> <!-- SCRIPTS RODAPE --> </body> </html> BACKEND - ASP não estou conseguindo repassar o TOKEN para cá, já tentei de várias formas... mas não consigo nem com REQUEST.QUERYSTRING, REQUEST e nem REQUEST.FORM. <% Response.LCID = 1033 'USA LCID IF Request.ServerVariables("SERVER_NAME") <> Request.ServerVariables("SERVER_NAME") THEN Response.Write "ACESSO RESTRITO!" ELSE G_TOKEN = Request.Form("campo_token") 'google token G_KEY_URL = "https://www.google.com/recaptcha/api/siteverify?secret=" 'google url G_KEY_SITE = "" 'google chave do site G_KEY_SECRET = "" 'google chave secreta IF Request.ServerVariables("REQUEST_METHOD") = "POST" THEN SET objXML = Server.CreateObject("MSXML2.ServerXMLHTTP") objXML.Open "GET", ""& G_KEY_URL & G_KEY_SECRET &"&response=" & G_TOKEN & "", false objXML.Send IF InStr(objXML.ResponseText, "TRUE") THEN campo_nome = Request.Form("campo_nome") campo_email = Request.Form("campo_email") campo_mensagem = Replace(Request.Form("campo_mensagem"), Chr(13), "<br>") cdoSERVER = "mail.teste.com.br" cdoORIGEM = "teste@teste.com.br" cdoPASS = "senha" cdoPORT = 587 cdoTIMEOUT = 120 cdoUSING = 2 cdoAUT = 1 cdoSSL = 0 cdoDE = campo_nome &" <"& campo_email &">" cdoPARA = "teste@teste.com.br" cdoASSUNTO = "teste - contato" cdoTEXT = "Envio de mensagem usando CDOSYS" SET objCDOSYSmail = Server.CreateObject("cdo.message") SET objCDOSYScon = Server.CreateObject("cdo.configuration") objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = cdoPORT objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoUSING objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoAUT objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = cdoTIMEOUT objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = cdoSSL objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = cdoSERVER objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = cdoORIGEM objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = cdoPASS objCDOSYScon.Fields.Update SET objCDOSYSmail.Configuration = objCDOSYScon objCDOSYSmail.From = cdoORIGEM objCDOSYSmail.To = cdoPARA objCDOSYSmail.Subject = cdoASSUNTO objCDOSYSmail.TextBody = cdoTEXT ON ERROR RESUME NEXT IF objCDOSYSmail.SEND = "" THEN Response.Write "Mensagem enviada com sucesso!" ELSE IF NOT ERR.NUMBER = "0" THEN Response.Write "Não foi possível enviar a mensagem!" Response.Write "OCORREU UM ERRO: " & Err.Number & " | " & Err.Description Err.Clear() END IF END IF ON ERROR GOTO 0 SET objCDOSYSmail = Nothing SET objCDOSYScon = Nothing ELSE Response.Write "recaptcha errado!" END IF SET objXML = Nothing END IF END IF %> Quem tiver tempo, e quiser dar uma olhada, só falta isso para finalizar o código, PASSAR o bendito parametro que não consigo do input para o ASP. No demais, agradeço. Até....
  3. marcelocardoso

    Google Recaptcha V3 - Param não resgata

    o único requisito, é se cadastrar no recaptcha do google, gerar suas chaves KEY e SECRET KEY e utilizar no código.... o resto de libs, já estão sendo carregadas.... até mais....
  4. marcelocardoso

    Google Recaptcha V3 - Param não resgata

    Após 4 dias de quebra-cabeça, consegui finalizar o script.... Quem tá sofrendo, e precisar, segue exemplo completo em ASP, mas podendo ser adaptável para PHP ou qualquer outra linguagem. HTML: <!DOCTYPE html> <html lang="pt_BR"> <head> <meta charset="utf-8"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="ie=edge" http-equiv="X-UA-Compatible"> <title>Google Recaptcha - v3</title> <!-- STYLES CSS --> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/inputmask@3.3.11/css/inputmask.min.css"> <!-- STYLES CSS --> <!-- SCRIPTS JS --> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-form@4.2.2/dist/jquery.form.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/jquery.validate.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/localization/messages_pt_BR.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/additional-methods.min.js"></script> <!-- SCRIPTS JS --> <!-- SCRIPTS RECAPTCHA - SITE KEY --> <script src="https://www.google.com/recaptcha/api.js?render=6LesKRKk19yob6G8hx3LEoYXybIC"></script> <!-- SCRIPTS RECAPTCHA - SITE KEY --> <style type="text/css"> *:focus { outline: none !important; } html, body { height: 100%; width: 100%; } body { color: darkgrey; margin: 60px 0px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* google captcha - hidden na tela */ .grecaptcha-badge { /* display: none !important; */ visibility: hidden !important; } /* google captcha - exibe somente na página contato */ #frm-contato .grecaptcha-badge { visibility: visible !important; } .grecaptcha-badge { width: 0 !important; } .grecaptcha-badge.show { width: 256px !important; } .grecaptcha-badge { display: flex; justify-content: flex-end; overflow: hidden; width: 70px; height: 60px; margin: 0 auto; box-shadow: 0 0 4px #ddd; transition: linear 100ms width; } .grecaptcha-badge:hover { width: 256px; } .grecaptcha-badge-small { font-size: 9px; color: darkgray; text-align: center; } .valid-class { color: #006400; padding-left: 12px; padding-top: 3px; font-size: 15px; display: block; } .error-class { color: #e33d00; padding-left: 12px; padding-top: 3px; font-size: 15px; display: block; } .loading { position: fixed; left: 0px; top: 0px; margin: 0px; width: 100%; height: 100%; display: block; z-index: 999999; opacity: 0.92; -moz-opacity: 0.92; filter: alpha(opacity=98); background-color: #00224b; background-image: url("img/loading.gif"); background-repeat: no-repeat; background-position: 50% 50%; text-align: center; overflow: hidden; font-weight: bold; font-size: 25px; color: white; padding-top: 25%; } </style> </head> <body> <!-- code | formulario --> <section id="frm-contato" class="container-fluid"> <h1 class="text-center">RECAPTCHA</h1> <h4 class="text-center">GOOGLE v3</h4> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12"> <form id="form_contato" method="post" action="inc/recaptcha.asp"> <div class="form-group"> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 mb-2"> <label class="control-label" for="campo_nome">Nome</label> <input type="text" id="campo_nome" name="campo_nome" class="form-control" autocomplete="name" placeholder="Digite seu nome"> </div> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 mb-2"> <label class="control-label" for="campo_email">Email</label> <input type="text" id="campo_email" name="campo_email" class="form-control" autocomplete="email" placeholder="Digite seu e-mail"> </div> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 mb-2"> <label class="control-label" for="campo_mensagem">Mensagem</label> <textarea type="text" id="campo_mensagem" name="campo_mensagem" class="form-control" placeholder="Descreva sua mensagem"></textarea> </div> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 mt-4"> <div id="contato_retorno"></div> <button id="btn-form" type="submit" class="btn btn-block btn-md btn-success">ENVIAR</button> </div> </div> <input type="hidden" id="g-recaptcha-response"> <input type="hidden" id="action" value="validate_captcha"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 grecaptcha-badge-small p-4"> Este site é protegido pelo reCAPTCHA e pelo Google <a href="https://policies.google.com/privacy">Política de Privacidade</a> e <a href="https://policies.google.com/terms">Termos do serviço</a>. </div> </form> </div> <div id="contato_carregando"></div> </section> <!-- code | formulario --> <!-- GOOGLE reCAPTCHA --> <script type="text/javascript"> "use strict"; //formulario de validacao $("#form_contato").validate({ errorClass: "error-class", validClass: "valid-class", onkeyup: function (element) { this.element(element); }, onfocusout: function (element) { this.element(element); }, rules: { campo_nome: { required: true, minlength: 5, maxlength: 50 }, campo_email: { required: true, minlength: 5, email: true }, campo_mensagem: { required: true, minlength: 5, maxlength: 5000 } }, submitHandler: function (form) { // A) resgatar variaveis (SerializeArray) // var formData = $("#frm_form_contato").serialize(); // var formData = $("#frm_form_contato").serializeArray(); // B) resgatar variaveis (FormData) // var formData = { // 'campo_nome': $("#campo_nome").val(), // 'campo_email': $("#campo_email").val(), // 'campo_mensagem': $("#campo_mensagem").val(), // 'campo_token': $("#g-recaptcha-response").val(), // }; //CAPTCHA + FORM POR POST // grecaptcha.ready(function () { // grecaptcha.execute('6LeWQKRKk19yob6G8hx3LEoYXybIC', { // action: 'validate_captcha' // }).then(function (token) { // document.getElementById('g-recaptcha-response').value = token; // $.post($("#form_contato").attr("action"), { // campo_nome: $("#campo_nome").val(), // campo_email: $("#campo_email").val(), // campo_mensagem: $("#campo_mensagem").val(), // campo_token: $("#g-recaptcha-response").val(), // }).then(function (response) { // if (response = "success") { // console.log('captcha ok'); // alert(token); // } else { // console.log('recaptcha inválido! você é um ROBO ou SPAMMER!!!'); // } // }); // }); // }); var nome = $("#campo_nome").val(); var email = $("#campo_email").val(); var mensagem = $("#campo_mensagem").val(); var token = $("#g-recaptcha-response").val(); //CAPTCHA + FORM POR AJAX grecaptcha.ready(function () { grecaptcha.execute('6LesKk19yob6G8hx3LEoYXybIC', { action: 'validate_captcha' }).then(function (token) { document.getElementById('g-recaptcha-response').value = token; $.ajax({ url: $("#form_contato").attr("action"), type: "get", // contentType: 'application/json; utf-8', // dataType: 'json', // data: "nome=" + nome + "&email=" + email + "&msg=" + mensagem + "&token=" + token + "", data: { nome: nome, email: email, mensagem: mensagem, token: token, }, // antes de tudo beforeSend: function () { $("#btn-form").removeClass('btn-success').addClass('btn-warning').text('Aguarde, enviando ...').fadeIn(); $("#contato_carregando").html("<div class='loading'></div>").fadeIn(); }, // se houver sucesso success: function (response) { $("#contato_carregando").delay(100).fadeOut(); $("#contato_retorno").html("<div class='valida_a_certo'>" + response + "</div>").delay(2000).fadeIn(); $("#contato_retorno").fadeOut(); $("#btn-form").removeClass('btn-warning').addClass('btn-success').text('Mensagem Enviada!'); $(form)[0].reset(); }, // se houver erro error: function (response) { $("#contato_retorno").html("<div class='valida_a_erro'>" + response + "</div>").delay(2000).fadeIn(); $("#contato_retorno").fadeOut(); $(form)[0].reset(); }, // depois de tudo, complete: function (response) { $("body").fadeTo(4000, '1'); }, }); return false; }); }); } }); </script> <!-- SCRIPTS RODAPE --> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/js/bootstrap.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/inputmask@3.3.11/dist/jquery.inputmask.bundle.js"></script> <!-- SCRIPTS RODAPE --> </body> </html> ASP: <!--#include file="objetojson.asp"--> <% Response.LCID = 1033 'USA LCID IF Request.ServerVariables("SERVER_NAME") <> Request.ServerVariables("SERVER_NAME") THEN Response.Write "ACESSO RESTRITO!" ELSE G_TOKEN = Request("token") 'google token G_KEY_URL = "https://www.google.com/recaptcha/api/siteverify?secret=" 'google url G_KEY_SITE = "suachave" 'google chave do site G_KEY_SECRET = "chavesecreta" 'google chave secreta ' response.write request("nome") & "<br>" ' response.write request("email") & "<br>" ' response.write request("mensagem") & "<br><br>" ' response.write request("token") & "<br><br>" IF Request.ServerVariables("REQUEST_METHOD") = "POST" OR Request.ServerVariables("REQUEST_METHOD") = "GET" THEN SET objXML = Server.CreateObject("MSXML2.ServerXMLHTTP") objXML.Open "GET", ""&G_KEY_URL&G_KEY_SECRET&"&response="&G_TOKEN&"", false objXML.Send SET objXMLjson = new jsonClass SET objXMLjsonOut = objXMLjson.parse(objXML.responseText) IF objXMLjson.value("success") THEN recaptcha = "true" ELSE recaptcha = "false" END IF ' response.write recaptcha & "<br>" ' response.write objXML.responseText & "<br>" IF recaptcha = "true" THEN campo_nome = Request.Form("nome") campo_email = Request.Form("email") campo_mensagem = Replace(Request.Form("mensagem"), Chr(13), "<br>") cdoSERVER = "mail.teste.com.br" cdoORIGEM = "teste@teste.com.br" cdoPASS = "teste%#@" cdoPORT = 587 cdoTIMEOUT = 120 cdoUSING = 2 cdoAUT = 1 cdoSSL = 0 cdoDE = campo_nome &" <"& campo_email &">" cdoPARA = "teste@teste.com.br" cdoASSUNTO = "teste - Contato" cdoTEXT = "Envio de mensagem usando CDOSYS" SET objCDOSYSmail = Server.CreateObject("cdo.message") SET objCDOSYScon = Server.CreateObject("cdo.configuration") objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = cdoPORT objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoUSING objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoAUT objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = cdoTIMEOUT objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = cdoSSL objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = cdoSERVER objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = cdoORIGEM objCDOSYScon.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = cdoPASS objCDOSYScon.Fields.Update SET objCDOSYSmail.Configuration = objCDOSYScon objCDOSYSmail.From = cdoORIGEM objCDOSYSmail.To = cdoPARA objCDOSYSmail.Subject = cdoASSUNTO objCDOSYSmail.TextBody = cdoTEXT ON ERROR RESUME NEXT IF NOT objCDOSYSmail.Send = "" THEN Response.Write "Mensagem enviada com sucesso!" ELSE IF NOT ERR.NUMBER = "0" THEN Response.Write "Não foi possível enviar a mensagem!" Response.Write "OCORREU UM ERRO: " & Err.Number & " | " & Err.Description ERR.Clear() END IF END IF ON ERROR GOTO 0 SET objCDOSYSmail = Nothing SET objCDOSYScon = Nothing ELSE Response.Write "<b>Google Captcha - Erro!<b>" END IF SET objXML = Nothing END IF END IF %> uma contribuição... serve de exemplo e implementação... correções, melhorias, fico satisfeito.... abraços....
  5. marcelocardoso

    Agrupar DATAS em noticias

    Pessoal! Pesquisei bastante no forum e na internet, porém não consegui realizar o que preciso. Vejam se conseguem me dar uma luz para resolver. 1) preciso ao exibir no RECORDSET as noticias, mas não repetindo as DATAS; 2) preciso ao exibir agrupar as noticias sem repetição, mas mostrando todas as que pertecem a DATA acima; 2a) tipo: 14:08:1980 - exibir noticia 1, exibir noticia 2, exibir noticia 3 (que no caso, aí teria dentro do banco 3 datas para o dia 14:08:1980, mas somente mostrar 1 vez a data e as 3 noticias. 3) depois sucessivamente as demais, que daí faço com o WHILE. Tentei usar distinct, mas também não achei o modo certo. Alguma luz com exemplo, agradeço. Obrigado.
  6. marcelocardoso

    Agrupar DATAS em noticias

    Complementando, para outro caso.... consegui utililzar assim: <% 'cria uma data ficticia, a qual nunca poderá repetir data = "1900-01-01" 'faz um loop DO WHILE NOT bootPAG.EOF Response.Write "<div class=""col-xl-12 col-lg-12 col-md-12 col-md-12 col-xs-12"">" 'se não for igual, imprime... e vai fazendo o laço até o fim... IF NOT data = bootPAG("data") THEN Response.Write "<div class=""box-noticias-data-min mb-2"">"& FormataDataBrasileiro(bootPAG("data")) &"</div>" data = bootPAG("data") END IF Response.Write "<div class=""box-noticias-titulo-min""><a href=""?idnot="& bootPAG("id") &"#topo"">"& TrataAcentos(bootPAG("titulo")) &"</a></div>" Response.Write "</div>" bootPAG.MoveNext Loop %>
  7. marcelocardoso

    limitar itens paginação...

    Segue agora outro exemplo, agora com busca, bem mais compacto e também mais reduzido, comprimido, resumido... apenas dois arquivos. index.asp <!--#include file="inc/count.asp"--> <form method="post" action="?menu=item"> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12"> <table class="table"> <tbody> <tr> <td> <div class="col-xl-6 col-lg-6 col-md-6 col-sm-6 col-xs-12 text-left m-0 mt-2 p-0"> <button class="btn btn-success fa fa-pencil fa-1x mb-2 pull-left" type="button" onclick="window.location='?menu=inserir';"></button> <p class="text-left mr-3 mt-1">Inserir um novo registro!</p> </div> <div class="col-xl-6 col-lg-6 col-md-6 col-sm-6 col-xs-12 input-group text-right m-0 mt-2 p-0"> <input id="busca" name="busca" type="text" class="form-control" placeholder="Digite o que deseja buscar ..." value="<%=busca%>"> <span class="input-group-btn m-0 p-0"> <input class="btn btn-warning" type="submit" value="BUSCAR" /> </span> </div> </td> </tr> </tbody> </table> <% IF bootPAG.EOF OR tCount = "0" THEN %> <table class="table"> <tbody> <tr> <td class="text-center"> Nao existem registros para a busca: <b style="color: green;"><%= busca %></b> </td> </tr> </tbody> </table> <% ELSE %> <table class="table table-bordered table-borderless table-striped table-hover"> <thead> <tr> <th class="text-center hidden-xs">ID</th> <th class="text-center hidden-xs">DATA</th> <th class="text-center hidden-xs">HORA</th> <th class="text-left">TITULO</th> <th class="text-left hidden-xs">SUBTITULO</th> <th class="text-center">OPCOES</th> </tr> </thead> <tbody> <div id="bootpag-conteudo"></div> </tbody> </table> <% END IF %> <div class="col-xl-12 col-lg-12 col-md-12 col-md-12 col-xs-12 text-right" style="padding-top: 25px; font-size: 10px; color: darkgrey;"> <% IF tPages < 1 THEN %> Você está navegando na p&aacute;gina | <b><%=page%></b> | <% ELSE %> Você está navegando na p&aacute;gina | <b><%=page%></b> de <b><%=tPages%></b> | <% END IF %> </div> <div class="col-xl-12 col-lg-12 col-md-12 col-md-12 col-xs-12 text-right" style="padding-top: 10px; font-size: 10px; color: darkgrey;"> TOTAL DE | <b><%=tCount%></b> | REGISTROS ENCONTRADOS </div> </div> </form> <div id="bootpag-paginacao"></div> <script type="text/javascript"> $(document).ready(function() { var numBusca = $("input[name=busca]").val(); $("#bootpag-conteudo").load("inc/ajax.asp?busca="+ numBusca +""); $("#bootpag-paginacao").bootpag({ total: <%=tPages %>, page: 1, maxVisible: 4, leaps: false, firstLastUse: true, nextClass: 'next', next: '<span class=" fa fa-chevron-right"></span>', prevClass: 'prev', prev: '<span class=" fa fa-chevron-left"></span>', firstClass: 'first', first: '<span class=" fa fa-home"></span>', lastClass: 'last', last: '<span class=" fa fa-arrow-right"></span>', activeClass: 'active', disabledClass: 'disabled' }).on("page", function(e, numPag){ e.preventDefault(); $("#bootpag-conteudo").load("inc/ajax.asp?page="+ numPag +"&busca="+ numBusca +""); }); }); </script> </div> count.asp <% 'limpa a variavel busca = "" 'resgato as variaveis busca = Request("busca") pag = Trim(Request.QueryString("page")) 'verifico que pagina estou IF NOT pag = "" AND NOT pag = "0" THEN IF IsNumeric(pag) THEN page = pag ELSE page = 1 END IF ELSE page = 1 END IF 'faz a contagem de registros total do banco de dados SET bootCOUNT = conexao.execute("SELECT COUNT(*) AS id FROM table WHERE titulo LIKE '%"& busca &"%'" &_ "OR subtitulo LIKE '%"& busca &"%'" &_ "OR descricao LIKE '%"& busca &"%'") 'defino a contagem de registros encontrados pelo count tCount = CInt(bootCOUNT(0)) 'defino o limite de linhas (qtde) ou (registros exibido na tela) tRow = 1 'defino o total de registros e divido pelo limite de linhas tPages = CInt((tCount/tRow)) 'defino a posicao final do limit da query MYSQL tPosition = ((page-1) * tRow) SET bootPAG = conexao.execute("SELECT * FROM table WHERE titulo LIKE '%"& busca &"%'" &_ "OR subtitulo LIKE '%"& busca &"%' OR descricao LIKE '%"& busca &"%' " &_ "ORDER BY id DESC LIMIT "& tPosition &", "& tRow &"") %> noticias.asp <!--#include file="conn.asp"--> <!--#include file="count.asp"--> <% DO WHILE NOT bootPAG.EOF Response.Write "<td class=""text-center hidden-xs"">"& bootPAG("id") &"</td>" Response.Write "<td class=""text-center text-muted hidden-xs"">"& FormataDataBrasileiro(bootPAG("data")) &"</td>" Response.Write "<td class=""text-center text-muted hidden-xs"">"& FormataHora(bootPAG("hora")) &"</td>" Response.Write "<td class=""text-left hidden-xs""><b>"& bootPAG("titulo") &"</b></td>" Response.Write "<td class=""text-left text-muted"">"& bootPAG("subtitulo") &"</td>" Response.Write "<td class=""text-center"" style=""vertical-align: middle;"">" Response.Write "<button class=""btn fa fa-wrench"" type=""button"" onclick=""window.location='?menu=atualizar&id="& bootPAG("id") &"'""></button>" Response.Write "<button class=""btn btn-delete fa fa-trash-o"" type="" button"" data-id="""& bootPAG("id") &"""""></button>" Response.Write "</td>" bootPAG.MoveNext LOOP %> uma ótima paginação para estudo, implementação utilizando bootpag... dá para personalizar a vontade... segue exemplo que FUNCIONA, bons estudos... até...
  8. marcelocardoso

    limitar itens paginação...

    olá pessoal. Estou disponibilizando um script para paginação de noticias, ele funciona, porém, ao adaptar codigo usado da internet, não encontrei maneiras de LIMITAR os REGISTROS. Se alguém quiser contribuir, na parte da paginação, agradeço. preciso limitar os registros em 10 em 10 a paginação primeiro < 1 2 3 4 5 6 7 8 9 10 > ultimo <section class="container-fluid"> <div class="row mb-5"> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 mb-5"> <h1 class="text-center"> Informações e noticias </h1> <h3 class="text-center"> Atualizações diárias de conteúdos advocatícios e judiciais </h3> </div> <div class="col-xl-8 col-lg-8 col-md-8 col-sm-8 col-xs-12 mt-2 p-5" style="height: auto;"> <% IF IsEmpty(Request.QueryString("idnot")) OR IsNull(Request.QueryString("idnot")) THEN SQL1 = "SELECT * FROM dbluz_noticias ORDER BY id DESC LIMIT 1" ELSE SQL1 = "SELECT * FROM dbluz_noticias WHERE id = "& Request.QueryString("idnot") &" ORDER BY id DESC LIMIT 1" END IF SET strNoticias = Server.CreateObject("ADODB.Recordset") strNoticias.Open SQL1, conexao, 3, 3 IF strNoticias.EOF THEN %> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 text-center"> <h1>AVISO!</h1> <h4 style="color: green;"> Não existem noticias cadastradas no momento, <br> ou não existe registro para este ID informado. </h4> </div> <% ELSE DO WHILE NOT strNoticias.EOF %> <div class="box-noticias-data"> <%=strNoticias("dbluz_data")%> </div> <div class="box-noticias-subtitulo"> <%=strNoticias("dbluz_subtitulo")%> </div> <div class="box-noticias-titulo mt-4"> <%=strNoticias("dbluz_titulo")%> </div> <div class="box-noticias-descricao mt-5 text-justify"> <%=strNoticias("dbluz_descricao")%> </div> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 text-right box-noticias-fonte line-dotted-top mt-3 mb-5 p-2"> <span class="mb-5 mt-2 p-2 bg-success"> <a href="index.asp?idnot=<%=strNoticias("id")%>" role="button" class="btn btn-clean"> <span class="fa fa-print fa-1x font-color-var1"></span> </a> </span> </div> <% strNoticias.MoveNext Loop SET strNoticias = Nothing %> </div> <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-xs-12 mt-5 p-0"> <% SQL2 = "SELECT * FROM dbluz_noticias " SET strNoticiasBlocos = Server.CreateObject("ADODB.Recordset") strNoticiasBlocos.Open SQL2, conexao, 3, 3 IF strNoticiasBlocos.EOF THEN %> <div class="row"> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 text-center"> <h1>AVISO!</h1> <h4 style="color: green;">Não existem noticias cadastradas no momento, <br> ou não existe registro para este ID informado.</h4> </div> </div> <% ELSE ItensExibidos = 1 'Qtde de Itens' NumeroDaPagina = Request.QueryString("pg") IF NumeroDaPagina = "" THEN NumeroDaPagina = 1 TotalDeRegistros = UBound(strNoticiasBlocos.GetRows,2)+1 InicioDaPagina = ((ItensExibidos*NumeroDaPagina)-ItensExibidos) FinalDaPagina = ItensExibidos IF TotalDeRegistros <= ItensExibidos THEN PaginaTotal = 1 ELSEIF (TotalDeRegistros MOD ItensExibidos = 0) THEN PaginaTotal = (TotalDeRegistros/ItensExibidos) ELSE PaginaTotal = (TotalDeRegistros/ItensExibidos) + 1 PaginaTotal = Cint(PaginaTotal) END IF strNoticiasBlocos.close SQL3 = SQL2 & "WHERE id != (SELECT max(id) FROM dbluz_noticias) ORDER BY id DESC LIMIT "& InicioDaPagina &" , "& FinalDaPagina &"" strNoticiasBlocos.Open SQL3, conexao, 3, 3 %> <div class="row"> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 mb-2"> <% DO WHILE NOT strNoticiasBlocos.EOF %> <div class="box-noticias-data-min"><%= strNoticiasBlocos("dbluz_data")%></div> <div class="box-noticias-titulo-min mt-1 mb-1"> <a href="index.asp?idnot=<%=strNoticiasBlocos("id")%>" class=""> <%= strNoticiasBlocos("dbluz_titulo")%> </a> </div> <div class="box-noticias-descricao-min hidden-sm hidden-xs mb-4 line-dotted-top"> <%= LEFT(strNoticiasBlocos("dbluz_descricao"),200)%> </div> <% strNoticiasBlocos.MoveNext Loop %> </div> <% END IF END IF %> </div> <div class="col-xl-12 col-lg-12 col-md-12 col-md-12 col-xs-12"> <ul class="pagination pagination-sm"> <% IF Cint(NumeroDaPagina) = 1 THEN %> <li class="page-item disabled"> <a class="page-link fa fa-home" href="?pg=1" tabindex="-1"></a> </li> <li class="page-item disabled"> <a class="page-link" href="?pg=<%=NumeroDaPagina-1%>" tabindex="-1">Anterior</a> </li> <% ELSE %> <li class="page-item"> <a class="page-link fa fa-home" href="?pg=1" tabindex="-1"></a> </li> <li class="page-item"> <a class="page-link" href="?pg=<%=NumeroDaPagina-1%>" tabindex="-1">Anterior</a> </li> <% END IF %> <% FOR intID = 1 TO PaginaTotal IF intID = Cint(NumeroDaPagina) THEN %> <li class="page-item active"><a class="page-link" href="#"><b><%=intID%></b></a></li> <% ELSE %> <li class="page-item"> <a class="page-link" href="?pg=<%=intID%>"> <%=intID%> </a> </li> <% END IF NEXT %> <% IF Cint(NumeroDaPagina) = PaginaTotal THEN %> <li class="page-item disabled"> <a class="page-link" href="?pg=<%=NumeroDaPagina+1%>">Proxima</a> </li> <li class="page-item disabled"> <a class="page-link fa fa-arrow-circle-right" href="?pg=<%=PaginaTotal%>"></a> </li> <% ELSE %> <li class="page-item"> <a class="page-link" href="?pg=<%=NumeroDaPagina+1%>">Proxima</a> </li> <li class="page-item"> <a class="page-link fa fa-arrow-circle-right" href="?pg=<%=PaginaTotal%>"></a> </li> <% END IF %> </ul> </div> <div class="col-xl-12 col-lg-12 col-md-12 col-md-12 col-xs-12"> <div class="text-right p-1" style="font-size: 10px;"> Navegando na página <b id="barra_numero"><%= NumeroDaPagina %></b> de <b id="barra_total"><%= PaginaTotal %></b> </div> <div class="text-right p-1" style="font-size: 10px; color: dimgray;"> TOTAL DE <b id="barra_registro"><%= TotalDeRegistros %></b> REGISTROS </div> </div> </div> </div> </section> CODIGO DA PAGINACAO EXTRAIDO DA PARTE DE CIMA, a parte que preciso ajustar.... <ul class="pagination pagination-sm"> <% IF Cint(NumeroDaPagina) = 1 THEN %> <li class="page-item disabled"> <a class="page-link fa fa-home" href="?pg=1" tabindex="-1"></a> </li> <li class="page-item disabled"> <a class="page-link" href="?pg=<%=NumeroDaPagina-1%>" tabindex="-1">Anterior</a> </li> <% ELSE %> <li class="page-item"> <a class="page-link fa fa-home" href="?pg=1" tabindex="-1"></a> </li> <li class="page-item"> <a class="page-link" href="?pg=<%=NumeroDaPagina-1%>" tabindex="-1">Anterior</a> </li> <% END IF %> <% FOR intID = 1 TO PaginaTotal IF intID = Cint(NumeroDaPagina) THEN %> <li class="page-item active"><a class="page-link" href="#"><b><%=intID%></b></a></li> <% ELSE %> <li class="page-item"> <a class="page-link" href="?pg=<%=intID%>"> <%=intID%> </a> </li> <% END IF NEXT %> <% IF Cint(NumeroDaPagina) = PaginaTotal THEN %> <li class="page-item disabled"> <a class="page-link" href="?pg=<%=NumeroDaPagina+1%>">Proxima</a> </li> <li class="page-item disabled"> <a class="page-link fa fa-arrow-circle-right" href="?pg=<%=PaginaTotal%>"></a> </li> <% ELSE %> <li class="page-item"> <a class="page-link" href="?pg=<%=NumeroDaPagina+1%>">Proxima</a> </li> <li class="page-item"> <a class="page-link fa fa-arrow-circle-right" href="?pg=<%=PaginaTotal%>"></a> </li> <% END IF %> Desde já obrigado...
  9. marcelocardoso

    DIV acompanhando o SCROLL até certo ponto

    obrigado pelas dicas... ajudou bastante...
  10. marcelocardoso

    limitar itens paginação...

    Olá colegas e MICHAEL... como mencionado, para ajuda, para ninguém penar... segue exemplo de paginação adaptada de PHP para ASP, com limitação de registros.... CODE Index.asp <!--#include file="conn.asp"--> <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/reset.css@2.0.2/reset.min.css"> <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css"> <script type="text/javascript" src="//cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js"></script> <script type="text/javascript" src="//cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> <script type="text/javascript" src="//cdn.jsdelivr.net/npm/bootpag@1.0.7/lib/jquery.bootpag.min.js"></script> <style type="text/css"> html, body { height: 100%; width: 100%; margin: 0px; padding: 0px; } .flex-container { height: 100%; padding: 0; margin: 0; display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex; align-items: center; justify-content: center; } .flex-item { padding: 0px; height: auto; margin: 0px; line-height: 20px; text-align: center; } </style> </head> <body> <div class="flex-container"> <div class="row"> <div class="flex-item"> <div class="bootpag-content"> Conteúdo dinâmico gerado pelo BANCO DE DADOS - MySQL + ASP + AJAX </div> <div class="bootpag-pagination"></div> </div> </div> <div class="bootpag-loading"></div> </div> <script type="text/javascript"> $(document).ready(function () { $(".bootpag-content").load("data.asp"); $(".bootpag-pagination").bootpag({ total: <%= total_pages %>, page: 1, maxVisible: 5 }).on("page", function (e, num) { e.preventDefault(); $.ajax({ url: "data.asp?page=" + num }).done(function(data) { $(".bootpag-content").html(data); }); }); }); </script> </body> </html> data.asp <!--#include file="conn.asp"--> <% id_page = Trim(Request.QueryString("page")) IF NOT id_page = "" AND NOT id_page = "0" THEN IF IsNumeric(id_page) THEN page_no = id_page ELSE page_no = 1 END IF ELSE page_no = 1 END IF limit_start = ((page_no-1) * limit_row) SET strRS = Server.CreateObject("ADODB.RECORDSET") SET strRS = conexao.execute("SELECT * FROM dbnoticias ORDER BY id DESC LIMIT "& limit_start &", "& limit_row &"") IF strRS.EOF OR total_count = "0" THEN Response.Write "<b>Não existem registros a serem exibidos!</b>" ELSE DO WHILE NOT strRS.EOF Response.Write "<ul><li style=""font-size: 11px;""><b style=""color: black;"">["& strRS("id") &"]</b> ["& strRS("dbdata") &"] | "& strRS("dbtitulo") &"</li></ul>" strRS.MoveNext Loop END IF SET strRS = nothing SET strCT = nothing conexao.close SET conexao = nothing %> conexao.asp <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% SET conexao = Server.CreateObject("ADODB.CONNECTION") conexao.open "DRIVER={MySQL ODBC 8.0 ANSI DRIVER}; SERVER=localhost; DATABASE=banco; UID=root; PWD=; PORT=3306; OPTION=3;" SET strCT = Server.CreateObject("ADODB.RECORDSET") SET strCT = conexao.execute("SELECT count(*) AS id FROM dbnoticias") limit_row = 1 total_count = CInt(strCT(0)) total_pages = CInt((total_count/limit_row)) %> uma ótima paginação, podendo adaptar, simples, rapida e com uso de bootpag e outras do genero, fácil de adaptar.... meu esforço, ta aí... só adaptarem para que não sabe como eu também... 1 semana até conseguir fazer bem... até...
  11. marcelocardoso

    limitar itens paginação...

    acabei penando para fazer um paginação, depois de tanto estudar... não consegui e nem peguei mais esta acima, ainda ficando para ajustar os itens... mas adaptei uma de PHP, transpus para ASP e fiz os ajustes necessários... também utilizei o bootpag como solução para o caso que precisava... vou postar também, para ajuda a quem precisar de algo legal em ASP. até mais, e obrigado pelo lembrete. até... MICHAEL
  12. marcelocardoso

    Paginação BOOTPAG - TWBS

    olá pessoal. tentando criar paginação, moderna, busquei varios artigos na internet, porém, não consegui adaptar este.... que por sinal, fica joia, simples, rapido e objetivo, além de funcional para os tempos de hoje, jquery + bootstrap. trata-se do BOOTPAG ou TWBS Pagination: <nav aria-label="Page navigation"> <ul class="pagination" id="pagination"></ul> </nav> <div id="pagination_pag">Page 1</div> <script type="text/javascript"> $('#pagination').twbsPagination({ totalPages: 35, visiblePages: 2, onPageClick: function (event, page) { $("#pagination_pag").text('Page ' + page); } }); </script> Alguém já usou ele com ASP, ou PHP, onde posso utilizar junto com dados vindo de banco de dados???? Se alguem tiver exemplo e quiser postar, ou tiver dicas de como fazer, também, agradeço. Via AJAX no script, procurei no STACK OVERFLOW, também nada... Desde já agradeço.
  13. marcelocardoso

    Paginação BOOTPAG - TWBS

    alguém..... já fez bootpag com ASP e tem exemplo para postar... obrigado.
  14. marcelocardoso

    click com slidetoggle e ANCORA no TOP do id

    a principio teu codigo faz o mesmo efeito accordion que o slideToggle do jquery faz, no que eu preciso, mas ainda peca, falha, no quesito alinhar pelo TOPO, vamos ver se consigo ser mais explicativo... 1) slidetoggle, é clicado, certo. 2) ele, automaticamente, é expandido, abre para baixo e expande o mesmo, com seu conteudo; 3) isso fica perfeito quando é feito com o position BOTTOM, normal dele, 4) mas QUANDO é feito com o position para expandir para UP, .... 5) aí que está o problema, tentei com OFFSET, ao abrir para CIMA, independente do conteudo do slidetoggle ao ser aberto, deveria a barra de rolagem subir junto e pelo OFFSET, pegar o ID da DIV, e alinhar bem no inicio a div. ELE EXPANDE CERTO, mas tipo Texto inicio Texto meio Texto fim Ele não posiciona no texto início, fica sempre na metade, ou no texto fim, aí tu tens que subir a barra, para o texto início... Entendeu agora... Tentei de várias maneiras, pegar o OFFSET e jogar o ID, mas não consegui.... Fica a premissa... Seu exemplo faz também, mas faz a mesma coisa que eu FIZ, tenho que alinhar no topo quando expande independente do tamanho da DIV pelo slidetoggle sendo aberta. Se tiver cabeça para dar luz nisso, agradeço. Obrigado.
  15. marcelocardoso

    click com slidetoggle e ANCORA no TOP do id

    Fala galera... Depois de tanto sofrer tentando e pesquisando na internet, não consegui resolver... A nível de conhecimento, segue código para::: 1) Ao clicar, pegar o id do botão, em seguida abrir com slidetoggle e jogar no TOP tipo ancora. 2) ou seja, expandir a slidetoggle, mas POSICIONAR no id da DIV, SECTION ou etc... CODE: $(function () { // $("#btn-maps").on("click", function () { // $('html, body').animate({ // scrollTop: $("#maps").slideToggle('slow').offset().top - 135 // }, 1200, 'linear'); // }); $("#btn-maps").click( function (event) { event.preventDefault(); if ($("#maps").is(":visible")) { $("#maps").slideUp(600).offset().top; } else { $("#maps").slideDown(600).offset().bottom; } } ); }); Este código, funciona perfeitamente, adaptado de vários códigos buscados na internet, porém, não consigo com nenhum dos dois, posicionar ao CLICK o SLIDETOGGLE ao expandir deixar examente no inicio do ID; Dicas, Sugestões como fazer, realizar, agradeço. Obrigado.
  16. marcelocardoso

    click com slidetoggle e ANCORA no TOP do id

    Olha so omar...., O code faz isso, so o problema quando expande, ele nao vai para o TOP do item da slidetoggle, queria que ele posicionasse a div expandida pela sua base no topo, tipo no inicio da div quando expandida, tentei com id, mas n consegui....
  17. marcelocardoso

    limitar itens paginação...

    Alguém para dar uma luz, no quesito paginação, deixar somente 10 itens neste caso acima????
  18. marcelocardoso

    Agrupar DATAS em noticias

    Colegas... Consegui resolver de outra maneira, mas mesmo assim, obrigado pelos que tentaram e se doaram em ajudar... Muchas Gracias... FINALIZADO
  19. marcelocardoso

    Paginação BOOTPAG - TWBS

    Colegas... Consegui resolver de outra maneira, mas mesmo assim, obrigado pelos que tentaram e se doaram em ajudar... Muchas Gracias... FINALIZADO
  20. marcelocardoso

    Paginação BOOTPAG - TWBS

    algúem consegue dar uma luz no AJAX para buscar dados do banco MySQL???? fico agradecido...
  21. marcelocardoso

    Paginação BOOTPAG - TWBS

    pessoal, consegui montar até aqui, com este plugin bootpag, quem quiser ajudar a concluir, serve para repositório de scripts dos colegas... tá funcionando, porém, estou tentando adaptar dinamicamente, não conheço muito de PHP, apenas asp, então... ajuda, é bem vinda. CODE: <link rel='stylesheet' href='https://netdna.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css'> <style class="cp-pen-styles"> .wrapper { margin: 60px; } h1 { margin-bottom: 1.25em; text-align: center; } #conteudo { padding: 5px; width: 100%; color: #222222; font-size: 11px; border-radius: 10px; background-color: rgba(206, 206, 206, 0.15) } #paginacao { margin-top: 50px; width: 100%; color: #999999; border-top: 1px solid rgba(206, 206, 206, 0.33); font-size: 11px; } .pager { margin-left: 0; margin-bottom: 18px; list-style: none; text-align: center; color: #6c58bF; *zoom: 1; } .pager:before, .pager:after { display: table; content: ""; } .pager:after { clear: both; } .pager li { display: inline; color: #6c58bF; } .pager a { display: inline-block; padding: 5px 14px; color: #6c58bF; background-color: #fff; border: 1px solid #ddd; -webkit-border-radius: 15px; -moz-border-radius: 15px; border-radius: 15px; } .pager a:hover { text-decoration: none; background-color: #f5f5f5; } .pager .next a { float: right; } .pager .previous a { float: left; } .pager .disabled a, .pager .disabled a:hover { color: #999999; } </style> <div class="wrapper"> <div class="container"> <div class="row"> <div class="col-sm-12"> <h1>Paginação BOOTPag JS</h1> <% servidor = "localhost" banco = "db_verdesmares" usuario = "root" senha = "marmmc" porta = "3306" opcao = "3" SET conexao = Server.CreateObject("ADODB.Connection") conexao.Open "DRIVER={MYSQL ODBC 5.3 ANSI Driver};SERVER="&servidor&";PORT="&porta&";DATABASE="&banco&";UID="&usuario&";PWD="&senha&";OPTION="&opcao&";" SET RS = Server.CreateObject("ADODB.RECORDSET") SQL = "SELECT * FROM vm_noticias ORDER BY id DESC" RS.Open SQL, conexao, 3, 3 IF RS.EOF THEN Response.Write "Não existem registros a serem exibidos..." ELSE WHILE NOT RS.EOF %> <div class="col-md-11 text-left" style="padding: 6px;"><b><%=RS("vmares_data")%></b> - <%=RS("vmares_titulo")%></div> <% RS.MoveNext Wend END IF RS.close SET RS = nothing conexao.close SET conexao = nothing %> <div class="col-md-12" id="paginacao"></div> <div class="col-md-4 col-md-offset-4 text-center"> <div class="col-md-4" id="conteudo">Paginação dos Dados</div> </div> </div> </div> </div> </div> <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js'></script> <script src='https://netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js'></script> <script src='https://cdn.rawgit.com/botmonster/jquery-bootpag/master/lib/jquery.bootpag.min.js'></script> <script type="text/javascript"> var num ='<% Response.Write RS.RecordCount %>'; (function($) { $(document).ready(function(){ $('#paginacao').bootpag({ total: 20, page: 1, maxVisible: 6, leaps: false, next: 'Próximo', prev: 'Anterior', activeClass: 'active', disabledClass: 'disabled', href: "#pag{{number}}", }).on("page", function(event, num){ $.ajax({ url: "paginacao.asp?pag="+num, }).done(function(data) { $("#conteudo").html( data ); }); }); }); })( jQuery ); </script> <!-- COM ESTA O SCRIPT ACIMA FUNCIONA, ... ESTOU TENTANDO ADAPTAR O DE CIMA QUE NÃO FICA DINAMICAMENTE. <script> $('#paginacao').bootpag({ total: 20, page: 1, maxVisible: 6, leaps: false, next: 'Próximo', prev: 'Anterior', activeClass: 'active', disabledClass: 'disabled', href: "#pag{{number}}", }) $('#paginacao').on("page", function(event, num) { $("#conteudo").html("Você está na página: <b>" + num + "</b>"); }); </script> --> Estou tentando adaptar o script do BOOTPAG com o link a seguir, que está em PHP: https://stackoverflow.com/questions/35386812/paginate-table-with-bootpag-ajax http://www.kodingmadesimple.com/2017/01/simple-ajax-pagination-in-jquery-php-pdo-mysql.html ... Quero deixar ela com acesso ao banco de dados.... Tentei adaptar com response.write no script, mas não rola... Quem quiser contribuir transpondo o PHP para ASP, fica de boa... NO mais, obrigado.
  22. marcelocardoso

    Paginação BOOTPAG - TWBS

    alguém, consegue dar uma ajudinha na parte e que entenda de BOOTPAG, somente a parte do AJAX, carregar as noticias e jogar a paginação bootpag... desde agradeço.
  23. marcelocardoso

    Paginação BOOTPAG - TWBS

    e procurando, encontrei este código... só não tenho ideia de complementar a parte do PHP, para ASP? <div class="table-responsive"> <table class="table table-hover table-striped"> <thead> <tr> <th>K-ID</th> <th>Name</th> <th>Ort</th> <th></th> </tr> </thead> <tbody> <div id="results"></div> </tbody> </table> <div class="pagination"></div> </div> AJAX $(document).ready(function() { $("#results").load("kontakte_data.php"); $(".pagination").bootpag({ total: <?php echo $pages; ?>, page: 1, maxVisible: 5, }).on("page", function(e, num){ e.preventDefault(); $("#results").load("kontakte_data.php", {'page':num}); }); }); já usaram este plugin, sabem implementar, dicas, codigos para contribuição agradeço... obrigado.
  24. marcelocardoso

    Agrupar DATAS em noticias

    colegas, que me ajudaram... consegui realizar assim: CODE: <!-- CODE | noticias --> <section id="noticias" class="secao_altura100"> <div class="secao_conteudo"> <% IF Request.QueryString("noticia") = "" THEN %> <div class="row slideanim"> <div class="col-md-12 text-center" style="padding-bottom: 40px;"> <h1 class="extragrande"><b>Notícias Verdes Mares</b></h1> <h1>Atualizações e informativos do meio contábil!</h1> </div> </div> <% SET strRS = Server.CreateObject("ADODB.Recordset") strRS.Open "SELECT DISTINCT * FROM vm_noticias", conexao, 3, 3 IF strRS.EOF THEN %> <div class="row"> <div class="col-md-12" style="font-size: 25px;">AVISO!</div> <div class="col-md-12"> <div class="col-md-12" style="padding-bottom: 5px;"> <h6>Não existem noticias cadastradas no momento.</h6> </div> </div> </div> <% ELSE dataAtual = "1900-01-01" DO WHILE NOT strRS.EOF IF NOT dataAtual = strRS("vmares_data") THEN %> <div class="row" style="padding-bottom: 5px;"> <div id="noticia_data" class="text-center"><%= strRS("vmares_data") %></div> </div> <% dataAtual = strRS("vmares_data") END IF %> <div class="row"> <div class="col-md-12 text-muted" style="font-size: 11px; border-bottom: 2px solid rgba(193, 193, 193, 0.3);">Adicionada às: <%=FormataHora(strRS("vmares_hora"))%></div> <div class="col-md-12" style="padding-top: 20px;"> <p style="font-size: 20px;"><%=strRS("vmares_titulo")%></p> </div> <div class="col-md-12 text-muted" style="text-align: justify; padding-bottom: 12px;"> <%= LEFT(strRS("vmares_descricao"),400)%><% IF LEN(strRS("vmares_descricao")) > 400 THEN Response.Write " ..." END IF %> </div> <a href="index.asp?noticia=exibe&idnot=<%=strRS("id")%>" id="noticia_link" class="col-md-12 pull-right">+ detalhes</a> </div> <% strRS.MoveNext loop END IF END IF %> <!-- CODE | noticias --> <!-- CODE | noticias paginação de dados --> <nav aria-label="Page navigation"> <ul class="pagination" id="pagination"></ul> </nav> <div id="pagination_pag">Page 1</div> <script type="text/javascript"> $('#pagination').twbsPagination({ totalPages: 35, visiblePages: 2, onPageClick: function (event, page) { $("#pagination_pag").text('Page ' + page); } }); </script> <!-- CODE | noticias paginação de dados --> Só a paginação de dados abaixo agora, sabem como posso incrementar o TWBS com ASP e BANCO DE DADOS? procurei na net, não encontrei nada em asp, alguém te dicas? agradeço. Obrigado até aqui.
  25. marcelocardoso

    Agrupar DATAS em noticias

    tentei fazer assim, sem sucesso também... <% SET strRS = Server.CreateObject("ADODB.Recordset") strRS.Open "SELECT DISTINCT vmares_data FROM vm_noticias", conexao, 3, 3 IF strRS.EOF THEN response.write "Não existe registro para exibir" ELSE DO WHILE NOT strRS.EOF response.write "<b>" & strRS("vmares_data") & "</b><br>" SET strFinal = Server.CreateObject("ADODB.Recordset") strFinal.Open "SELECT * FROM vm_noticias WHERE vmares_data = '"& strRS("vmares_data") &"'", conexao, 3, 3 DO WHILE NOT strFinal.EOF response.write strFinal("vmares_hora") & " - | - " & strFinal("vmares_titulo") strFinal.MoveNext Loop strRS.MoveNext Loop END IF %> nem assim, monta os dados no segundo DO WHILE, que no caso, eu PEGARIA com DISTINCT as datas num primeiro momento, em segundo, pelo WHERE do segundo SELECT buscava todas as noticias da data específica, do primeiro laço, mas não exibe... oq posso estar errando..?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.