Publicidade

AndersonWS

Members
  • Total de itens

    100
  • Registro em

  • Última visita

  • Dias vencidos

    1

AndersonWS venceu o dia em Abril 4

Teve o conteúdo mais curtido

Reputação

7 Regular

Sobre AndersonWS

Informações Pessoais

  • Sexo
    Masculino

Últimos Visitantes

170 visualizações
  1. php

    Vou olhar amigo, grato.
  2. pdo

    Olhei a documentação e fiz assim: public function inserir($tabela, array $data, array $allowed, $where) { try { $values = []; $set = "" ; foreach ( $allowed as $field ) { if (isset( $data [ $field ])) { $set .= "`" . str_replace ( "`" , "``" , $field ). "`" . "=:$field , " ; $values [ $field ] = $data [ $field ]; } } $set = substr ( $set , 0 , - 2 ); //$query = $this->db->prepare ( "INSERT INTO " .$tabela. " SET $set " .$where. "" ); $query = $this->db->prepare("UPDATE " .$tabela. " SET $set " .$where. "" ); $query -> execute ( $values ); } catch (PDOException $e) { echo "Ocorreu um erro: " .$e->getMessage(); } } O que acham? Está correta? E quanto a segurança da query?
  3. pdo

    Mais uma dúvida. Antes eu usava assim: $nome = trim($_POST['nome']); $nome = mysql_real_escape_string($nome); Agora li que teria que usar assim: $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)"); $stmt->bindParam(1, $name); $stmt->bindParam(2, $value); Como adaptar isso a minha classe genérica?
  4. pdo

    Na verdade não entendi muito. Isto que você fez torna mais seguro contra SQL Injection por exemplo?
  5. pdo

    Galera estou aprendendo então minha classe ainda tem muito a melhorar por isso peço ajuda, dicas e orientações para melhoria da classe. O que eu fiz funciona mas preciso melhorar. Umas das coisa que eu gostaria seria usar o bindParam ou algo para evitar o SQL Injection. Segue o que eu consegui fazer: public function update($tableName, array $data, $cond, array $condParams) { $set = array(); foreach(array_combine($condParams, $data) AS $v1 => $v2) { $set[] = $v1 . ' = '.$v2; } $sql = 'UPDATE ' . $tableName. ' SET ' . join(', ', $set). ' WHERE '. $cond; $this->sql = $sql; // consulta que retorna $query = $this->db->prepare($this->sql); $query->execute(); } Sugestões?
  6. php

    Amigos, consegui essa classe na net no devmedia e adaptei pra usar na minha porém não sei como "instanciar a tabela". Mas pra pro update genérico não sei como fazer o FROM ".$this->tabela.": Como fazer? Tentei varias maneiras mas deu erro. Ainda estou aprendendo, uma luz? public function update($tabela, $arrayDados, $arrayCondicao) { try { // Atribui a instrução SQL construida no método $sql = $this->buildUpdate($tabela, $arrayDados, $arrayCondicao); // Passa a instrução para o PDO $stm = $this->db->prepare($sql); // Loop para passar os dados como parâmetro $cont = 1; foreach ($arrayDados as $valor): $stm->bindValue($cont, $valor); $cont++; endforeach; // Loop para passar os dados como parâmetro cláusula WHERE foreach ($arrayCondicao as $valor): $stm->bindValue($cont, $valor); $cont++; endforeach; // Executa a instrução SQL e captura o retorno $retorno = $stm->execute(); return $retorno; } catch (PDOException $e) { die('Error: '. $e->getMessage() ); } } /* * Método privado para construção da instrução SQL de UPDATE * @param $arrayDados = Array de dados contendo colunas, operadores e valores * @param $arrayCondicao = Array de dados contendo colunas e valores para condição WHERE * @return String contendo instrução SQL */ private function buildUpdate($tabela, $arrayDados, $arrayCondicao){ // Inicializa variáveis $sql = ""; $valCampos = ""; $valCondicao = ""; $tabela = ""; // Loop para montar a instrução com os campos e valores foreach($arrayDados as $chave => $valor): $valCampos .= $chave . '=?, '; endforeach; // Loop para montar a condição WHERE foreach($arrayCondicao as $chave => $valor): $valCondicao .= $chave . '? AND '; endforeach; // Retira vírgula do final da string $valCampos = (substr($valCampos, -2) == ', ') ? trim(substr($valCampos, 0, (strlen($valCampos) - 2))) : $valCampos ; // Retira vírgula do final da string $valCondicao = (substr($valCondicao, -4) == 'AND ') ? trim(substr($valCondicao, 0, (strlen($valCondicao) - 4))) : $valCondicao ; // Concatena todas as variáveis e finaliza a instrução $sql .= "UPDATE " . $tabela . " SET " . $valCampos . " WHERE " . $valCondicao; // Retorna string com instrução SQL return trim($sql); }
  7. javascript

    Show de bola, isso mesmo que eu queria! Só adicionei isso: $("div").removeClass('in'); pra fechar a anterior quando clica mas ai o sinal não muda de "-" para "+" de volta. Só preciso que fecha a anterior ao clicar na próxima e mudando o sinal como faz no exemplo.
  8. Não sei muito de JavaScript, creio que seja simples mas não estou conseguindo resolver. Precisava de uma função Accordion que ao clicar no próximo item, fechasse as informações do anterior e assim por diante. Usei o Accordion Bootstrap e funciona como eu queria, porém fico com um problema. Quando clico no botão para abrir as informações ele abre a informação mas o "sinal" de "mais" não muda pra "menos" usando essa função: $("a").click(function() { $("div").removeClass('in'); if ("div".style.display !== "active") { $("div").addClass('active'); } else { $("div").removeClass('active'); } }); Se eu uso outra, ele muda o sinal porém ai as informações do outro item não fecham e ficam todos abertos (o que eu não quero): var acc = document.getElementsByClassName("accordion"); var i; for (i = 0; i < acc.length; i++) { acc[i].onclick = function(){ this.classList.toggle("active"); var collapse = this.nextElementSibling; if (collapse.style.display === "block") { collapse.style.display = "none"; } else { collapse.style.display = "block"; } } } Meu HTML: <style> a.accordion { background: url(../img/pattern-1.png) repeat scroll 0 0 #eee; color: #444; cursor: pointer; padding: 18px; width: 96.5%; border: none; text-align: left; outline: none; font-size: 15px; transition: 0.4s; margin-bottom:5px; } a.accordion.active, a.accordion:hover { background: #f3f3f3; } a.accordion.active::after { content: "\2212"; } a.accordion::after { content: '\002B'; font-size: 13px; color: #777; font-weight: bold; float: right; margin-left: 5px; } *, *::before, *::after { box-sizing: inherit; } .collapse { display: none; } .collapse.in { display: block; } tr.collapse.in { display: table-row; } tbody.collapse.in { display: table-row-group; } .collapsing { position: relative; height: 0; overflow: hidden; -webkit-transition-timing-function: ease; -o-transition-timing-function: ease; transition-timing-function: ease; -webkit-transition-duration: .35s; -o-transition-duration: .35s; transition-duration: .35s; -webkit-transition-property: height, visibility; -o-transition-property: height, visibility; transition-property: height, visibility; } </style> <section style="margin:0 auto;width:100%;display:inline-table;"> <a class="btn btn-block accordion" role="button" data-toggle="collapse" data-target="#BR-Ass" aria-controls="gestao"> Todos os Estados </a> <div class="collapse" id="BR-Ass" style="margin:0 auto; width:96.5%;"> informações Todos os Estados </div> <a class="btn btn-block accordion" role="button" data-toggle="collapse" data-target="#SP-Ass" aria-controls="gestao"> São Paulo </a> <div class="collapse" id="BR-Ass" style="margin:0 auto; width:96.5%;"> informações São Paulo </div> ... </section> Como faço o "sinal" mudar de mais para menos no javascript?
  9. Tenho um código que adaptei daqui mesmo do fórum para adicionar campos dinâmicos. Meu problema é que ao adicionar um campo "select" que usa o "selectpicker bootstrap" ele não funciona. Não sei se é um problema de javascript ou de css então me desculpem se postei no local errado. Segue o código: //<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"></script> function mais_vinculos(){ var quantidade = $('.vinculo').size(); var div_qnt = parseInt(quantidade)+1; $('.mostrando_vinculos').append('<div class="form-group vinculo vinc'+div_qnt+'">\ <label class="col-md-9 control-label"><h4>Vinculo '+div_qnt+'</h4>\ <div class="form-group">\ <select name="vinculo[]" class="form-control selectpicker" data-live-search="true" title="Selecione vinculo...">\ <option value="1">Vinculo 1</option>\ <option value="2">Vinculo 2</option>\ <option value="3">Vinculo 3</option>\ <option value="4">Vinculo 4</option>\ <option value="5">Vinculo 5</option>\ </select>\ </div>\ <div class="form-group">\ <input name="nome[]" placeholder="Digite o nome..." class="form-control input-md" type="text"/>\ </div>\ </label>\ <div class="col-md-3">\ <a href="javascript: menos_vinculos(\'vinc'+div_qnt+'\')" class="btn btn-info pull-right">X</a>\ </div>\ </div><br/>\ '); } function menos_vinculos(classe){ $("."+classe).remove(); } <div class="mostrando_vinculos col-md-12"> </div> <div class="col-md-12"> <a href="javascript: mais_vinculos();" style="width:100%;" class="btn btn-md btn-default"> Adicionar vinculos </a> </div> O campo "input" aparece normal porém o select não é mostrado A classe fica assim: select.bs-select-hidden, select.selectpicker { display: none !important; } Mas se eu mudar ela o selectpicker bootstrap não funciona e aparece um select normal. O que eu posso fazer para resolver isso? Preciso usar o selectpicker bootstrap pois irão ter muitos resultados e a busca do selectpicker bootstrap facilita para meu caso. *Caso seja um CSS ou PHP e não javascript favor mover o tópico. Grato.
  10. javascript

    Achei a solução então vou colaborar. Alguém marca como "Resolvido" por favor. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript"> $(function() { $('.radio').click(function() { $('label').hide(); $(this).parent().show(); valor = $(this).val(); $('.fields').val(valor).show(); $('.cancel').show(); }); $('.cancel').click(function() { $('label').show(); $('button,.fields').hide(); }); }); function marcarTodos(marcar){ var itens = document.getElementsByName('reside'); if(marcar){ document.getElementById('acao').innerHTML = ''; }else{ document.getElementById('acao').innerHTML = ''; } var i = 0; for(i=0; i<itens.length;i++){ itens[i].checked = marcar; } } </script> <span id="acao"></span> <br> <label class="radio-inline"> <input type="radio" name="reside" class="radio" value="0" required=""/>Não <span class="fields"> Opção não <button class="cancel" onclick="marcarTodos(this.checked);">X</button> </span> </label> <label class="radio-inline"> <input type="radio" name="reside" class="radio" value="1" required=""/>Sim <span class="fields"> Opção Sim claro! <button class="cancel" onclick="marcarTodos(this.checked);">X</button> </span> </label> Assim você consegue mostrar/ocultar informações conforme a escolha e também se sair da escolha feita desmarca ela automaticamente. Espero que ajude a comunidade
  11. Tenho a seguinte função: function id(el) { return document.getElementById(el); } function mostra(element) { if (element) { id(element.value).style.display = 'block'; } } function esconde_todos($element, tagName) { var $elements = $element.getElementsByTagName(tagName), i = $elements.length; while(i--) { $elements[i].style.display = 'none'; } } window.addEventListener('load', function() { var $OutraRes = id('OutraRes'), $id1 = id('1'); //mostrando no onload da página esconde_todos(id('palcoRes'), 'div'); mostra(document.querySelector('input[name="reside"]:checked')); //mostrando ao clicar no radio var $radios = document.querySelectorAll('input[name="reside"]'); $radios = [].slice.call($radios); $radios.forEach(function($each) { $each.addEventListener('click', function() { esconde_todos(id('palcoRes'), 'div'); mostra(this); }); }); }); <label> <input type="radio" name="reside" value="1" required=""/> Sim </label> <label> <input type="radio" name="reside" value="OutraRes" required=""/> Não </label> <div id="palcoRes"> <div id="OutraRes"> <input name="res" id="res" placeholder="res" type="text"/> </div> </div> Funciona certinho porém preciso que ao invés de verificar se "algum" radio está checked, preciso verificar qual o value. Se for value "1" abre uma div, se for value "OutraRes" abre outra div. Daria pra modificar esse script ou se alguém sabe outro maneira? Grato.
  12. Valeu! As vezes só precisamos de alguém de fora pra clarear as ideias!
  13. javascript

    A questão é que essa formatação vem do banco de dados e o script que "lê" as informações é em javascript. Ele lê mas não traduz o html e o css, entende?
  14. Amigos, surgiu uma pergunta aqui e não sei se é viável de fazer. Quero ideias ou sugestões. Tenho eventos que começam de meses atrás e seguem para o futuro. Preciso mostrar todos mas começar a mostrar no evento do dia ou o próximo futuro. Se a data de hoje é 12/05/17, então: página 2 selecionada << Eventos passados 1 ( 2 ) 3 Eventos Futuros >> 15/04/17 05/06/17 15/08/17 Peguei a paginação deste aqui Adaptei o sql assim: // mostra somente os eventos de hoje e futuros SELECT * FROM `eventos` WHERE `data`>=CURDATE() AND status = '1' ORDER BY `data` // mostra todos mas a paginação inicia no evento errado SELECT * FROM `eventos` WHERE status = '1' ORDER BY `data` Como mostro todos os eventos mas com a paginação iniciando no evento com data de hoje ou futura mais próxima?
  15. javascript

    Olá a todos, não sei muito de javascript então vou tentar explicar o melhor que eu puder. Tenho um texto no banco de dados salvo assim, por exemplo: <div class="md"><p> Lorem <b> ipsum </b> dolor </p> <img alt="" src="/images/branding/googlelogo/2x/googlelogo_color_120x44dp.png"/></div> Eu quero que mostre na tela uma imagem, um texto com um negrito com o css declarado mas ao invés disso ele mostra as "tags" html como texto. Resultado atual = <div class="md"><p> Lorem <b> ipsum </b> dolor </p> <img alt="" src="/images/branding/googlelogo/2x/googlelogo_color_120x44dp.png" /></div> Resultado esperado = Lorem ipsum dolor O script: eventClick: function(event, jsEvent, view) { $('#modalTitle').html(event.title); $('#modalBody').html(event.description); $('#eventUrl').attr('href',event.url); $('#fullCalModal').modal(); return false; } O html: <!-- Modal --> <div id="fullCalModal" class="modal fade" role="dialog"> <div class="modal-dialog"> <!-- Modal content--> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">&times;</button> <h4 id="modalTitle" class="modal-title"></h4> </div> <div id="modalBody" class="modal-body"></div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button> <a id="eventUrl"><button class="btn btn-primary">Abrir Evento</button></a> </div> </div> </div> </div> Como resolver isso?