Mostrando postagens com marcador html. Mostrar todas as postagens
Mostrando postagens com marcador html. Mostrar todas as postagens

MULTISELECT VUE.JS

Precisei de um código multselect simples em vue.js e não encontrava, então resolvi desenvolver este, onde a unica biblioteca importada foi a do VUE.JS. Veja o exemplo abaixo.

NO HTML
 
<div id="app">
    <select @change="selecionarOpcaoComboGraduacao($event)" id="graduacao">
        <option value="">--Selecione a graduação--</option>
        <option v-for="(v,index) in listaGraduacao" :value="v.id">{{v.nome}}</option>
    </select>
    <br />
 <div v-if="opcaoSelecionadaComboGraduacao.length>0">
 <table>
  <tr v-for="(v, indice) in opcaoSelecionadaComboGraduacao">
     <td >
      <input type="hidden" name="opcaoSelecionadaComboGraduacao[]" :value="v.id" />
       {{v.nome}}
     </td>
     <td> <span @click="removerOpcaoSelecionadaComboGraduacao(indice)">
                <button title="remover">X</button> </span></td>
   </tr>
  </table>
 </div>
</div>
NO JAVASCRIPT 
 <script src="https://cdn.jsdelivr.net/npm/vue@2.5.13/dist/vue.js"></script> <script> new Vue({ el: "#app", data: { graduacao: '', listaGraduacao: [], opcaoSelecionadaComboGraduacao: [], }, created() { this.carregarGraduacaoEstatica(); //this.carregarGraduacaoDinamica(); }, methods: { carregarGraduacaoEstatica(){ this.listaGraduacao = [ {id: 1, nome: "ENGENHARIA"}, {id: 2, nome: "DIREITO"}, {id: 3, nome: "TECNOLOGIA"}, {id: 4, nome: "REDES"}, {id: 4, nome: "ADMINISTRAÇÃO"}, ] }, carregarGraduacaoDinamica(){ fetch('consulta-graduacao.php') .then(response => response.json()) .then(response => { this.listaGraduacao = response; })}, selecionarOpcaoComboGraduacao(e) { const indice = document.querySelector("#graduacao").selectedIndex; this.opcaoSelecionadaComboGraduacao.push({ id: e.target.value, nome: document.querySelector("#graduacao").options[indice].text }); }, removerOpcaoSelecionadaComboGraduacao(indice) { this.opcaoSelecionadaComboGraduacao.splice(indice, 1); }, } }) </script>


Se este Código do Dia lhe ajudou ou tiver qualquer dúvida ou encontrar algum erro deixe seu comentário que irei responder assim que possível. 

Obrigado pela visita.

 VAAALEU 😎👍

AUTOCOMPLETE COM JQUERY E PHP SIMPLES E FÁCIL DE INSTALAR NO CÓDIGO HTML

Dessa vez precisei de um campo autocomplete na tag. Pesquisei pelo autocomplete do jquery, mas não obtive muito sucesso devido achar complicado a implementação para guardar o valor da opção escolhida, pois nem sempre o valor da opção selecionada é o mesmo do texto exibido no mesmo.

Veja o exemplo de como implementei no meu código. 

HTML: 
Aqui terá apenas que criar a tag select e adicionar no mesmo modelo identico abaixo, ressaltando que os atributos id e name da tag podem ser o nome que desejar, pois não irá impactar no autocomplete.

<select id="campo-select" name="campo-select" onclick="naytech_autocomplete(this.id)" style='width:100%;height:40px'>
                    <option>--SELECIONE--</option>
</select>


PHP:

Aqui criei um array com valores estáticos somente para mostrar o exemplo de como deve ficar o mesmo com os índices antes de retornar ao javascript. O nome dos índices é padrão, não podem ser alterados, já os seus valores podem ser alterados.

Só lembrando que esses valores também podem vim de uma consulta no banco de dados, arrumando o arrei do mesmo da forma que está abaixo antes de retornar ao javascript.

$texto = $_REQUEST['texto'];
$array[] = ['id_opcao'=>5,'opcao'=>"ActionScript"];
$array[] = ['id_opcao'=>10,'opcao'=>"AppleScript"];
$array[] = ['id_opcao'=>15,'opcao'=>"BASIC"];              
$array[] = ['id_opcao'=>20,'opcao'=>"ColdFusion"];
$array[] = ['id_opcao'=>25,'opcao'=>"Erlang"];
$array[] = ['id_opcao'=>30,'opcao'=>"Fortran"];

foreach($array as $k=>$v){
    if(stristr($v['opcao'],$texto)){
        $retorno[] = $v;
    }
}
exit(json_encode($retorno))

JAVASCRIPT


Este código é só copiar e colocar dentro do seu código javascript que está dentro arquivo onde contém o campo select. Nada pode ser alterado deste código.

function naytech_autocomplete(id){

////AQUI CRIA O CAMPO QUE SERÁ DIGITADO O TEXTO COM UM GIF LOAD CONCATENADO, LEMBRANDO DE COLOCAR O GIF NO CAMINHO CERTO INFORMADO NO IMG ABAIXO////////

$("#"+id).before("<input style='width:100%;height:40px' placeholder='digite tr&ecirc;s ou mais letras para buscar a op&ccedil;&atilde;o desejada' id='buscar-select' onkeypress=criarListaAutoComplete('"+id+"') ><img id='loadList' src='carregando.gif' style='display:none'/><ul style='list-style:none;margin:0;padding:0;background:#fff;overflow-x: auto;max-height:150px;' id='buscar-select-list' style='display:none;width:100%;border:1px solid #e0e0e0'></ul>");
$("#"+id).css("display","none");
$("#buscar-select").focus();

///////AQUI ENTRA QUANDO FOR APAGANDO O TEXTO DO CAMPO, CADA VEZ Q APAGAR UMA LETRA A CONSULTA É REFEITA
$('#buscar-select').keydown(function(e) {
if (e.keyCode === 8 || e.keyCode === 46) ///tecla de backspace e delete
        {
           $("#"+id).html("<option selected value=''>--SELECIONE--</option>");
           criarListaAutoComplete(id);
          }
});
                
}<!-- FECHA A FUNÇÃO naytech_autocomplete -->

 
function opcaoSelecionado(id,id_select){

////AQUI COLOCA NA TAG SELECT A OPCAO ESCOLHIDA. ESTE CAMPO FICA ESCONDIDO, POIS FICA APARECENDO SOMENTE O INPUT ONDE É DIGITADO O TEXTO DA PESQUISA, MAIS NA HORA DO SUBMIT O VALOR DA TAG SELECT É RECONHECIDO

            var texto = $("li#li_"+id).text();
            var cd = $("li#li_"+id).attr("value");
            $("#buscar-select").val(texto);
            $("ul#buscar-select-list").hide().html("");
            $("select#"+id_select).html('<option selected value="' +cd + '">' + texto + '</option>');
}<!-- FECHA A FUNÇÃO
opcaoSelecionado-->
       
function criarListaAutoComplete(id_select){
               setTimeout(function(){
                var texto = $("#buscar-select").val();
                var idSelect = $("#"+id_select).attr("id");
                if (texto.length >= 3) { ////limita a busca na base a partir de 3 letras digitadas
                    $.ajax({
                        url: "listar-opcoes-select.php",
                        data: {texto: texto},
                        type:"post",
                        dataType:"json",
                        beforeSend:function (){$("#buscar-select").focus();$("img#loadList").show();},
                        complete:function(){$("img#loadList").hide();},
                        success: function (resp) {
 ////////// O RETORNO DO PHP TEM QUE SER UM ARRAY COM ESSES ÍNDICES, EXEMPLO: $array[] = array("id_opcao"=>1,"opcao"=>"Primeira opcao").
                            $("ul#buscar-select-list").hide().html("");
                            if(resp.length>0){
                                    for (var i = 0; i < resp.length; i++) {
                                        $("ul#buscar-select-list").append('<li class="buscar-select-list-li" id="li_'+i+'" onclick=opcaoSelecionado('+i+',"'+idSelect+'") style="background:#eee;cursor:pointer;margin-bottom:5px;margin-left:7px;margin-top:5px;padding:10px;margin:0;border-bottom:1px solid #fff" value="'+ resp[i].id_opcao +'">' +  resp[i].opcao + '</li>');
                                    }
                                    
                                    $("ul#buscar-select-list").show();
                                    $("ul#buscar-select-list li").mouseover(function(){
                                        $(this).css({"background":"#ccc"})
                                    }).mouseout(function(){
                                        $(this).css({"background":"#eee"})
                                    })
                            }
                        }
                    })
                }else{
                  $("ul#buscar-select-list").hide().html("");  
                }
                },100)
}
<!-- FECHA A FUNÇÃO criarListaAutoComplete-->
 

Então é isso, é só copiar este código acima em azul nos seus respectivos lugares no seu projeto e seguir a descrição que vai dar tudo certo.

Se este código lhe ajudou deixe seu comentário.
Se ainda tiver qualquer dúvida
deixe seu comentário.

VALEEEU 😎👍
 

REMOVER TAGS DO MEIO DE UM TEXTO COM JAVASCRIPT

Precisava remover as TAGS concatenadas a um texto vindo do banco de dados antes de exibir no HTML, então usei a função javascript replace() passando como parâmetro expressão regular.

NO HTML: 

<div id="TEXTOCOMTAG">
        <span>TEXTO COM TAGS<b> CONCATENADOS</b></span>
</div>

NO JAVASCRIPT:
var textoLimpo = $("#TEXTOCOMTAG").html().replace(/<[^>]*>?/gm, ''); 

$("#TEXTOCOMTAG").html(textoLimpo);


Resultado no HTML:
<div id="TEXTOCOMTAG">TEXTO COM TAGS CONCATENADOS</div>
////todas as tags removidas que ficam dentro do elemento  id="TEXTOCOMTAG"

 

 

Então é isso, se este código lhe ajudou deixe seu comentário.
Se ainda tiver qualquer dúvida
deixe seu comentário.

VAAALEU 😎👍

 

FUNÇÃO JQUERY WRAPALL() PARA ADICIONAR ELEMENTO PAI EM FILHO OU SEJA ACIMA DO ELEMENTO INFORMADO

FUNÇÃO JQUERY WRAPALL() PARA ADICIONAR ELEMENTO PAI EM FILHO OU SEJA ACIMA DO ELEMENTO INFORMADO Segue o Exemplo:

No HTML

<div id="PAI">Este elemento ainda não virou filho</div>

NO JAVASCRIPT

$("#PAI").wrapAll("<div id='PaiDoPai'>")
///observe que não precisa fechar a div(PaiDoPai) pois a função wrapAll ja sabe que o elemento PaiDoPai deve ser fechado após o elemento informado PAI

RESULTADO HTML

<div id='PaiDoPai'>
<div id="PAI">Este elemento ainda não virou filho</div>
</div>

PASSAR VALOR STRING PARA FUNÇÃO JAVASCRIPT A PARTIR DE UMA CHAMADA QUE JÁ ESTÁ DENTRO DE UMA STRING

Estava precisando criar uma função em js a qual após um clique em um botão, o mesmo gerava e concatenava um input com um atributo onkeypress que chamava uma função javascript que passava um valor string.

$("table#grid tbody").append('<input onkeypress="MascaraGenerica(\'CPF\')" />');
Desta forma o navegador entenderá que existe aspas(') no valor que está sendo passado pela chamada da função javascript.

Também tive a necessidade de concatenar uma função javascript a uma string, através desta função passar uma string. Então fiz desta forma para o browser entender as aspas simples obrigatórias no javascript para quando está passando uma string.

 JAVASCRIPT
for (var chave in array) {
var clik = "'"+array[chave]+"'";//O PULO DO GATO
$(".painel-imagem-conteudo .row:eq(1) .col-md-12 .form-group").append('<a onclick="mudarImagemGrandePainel('+clik+')">CLIQUE</a>'); }

FORÇAR QUEBRA DE LINHA NO TEXTO HTML

max-width: Define a largura e tamanho da div e linha do texto.
word-wrap: Força a quebra de linha do texto;

Exemplo:
<div style="max-width: 130px; word-wrap: break-word;">
TEXTO GRANDE
</div>

MÁSCARA PARA CPF, CNPJ, CEP, TELEFONE, DATA, MOEDA, INTEIRO, FLOAT OU CPF/CNPJ NO MESMO CAMPO COM JAVASCRIPT E EXPRESSÃO REGULAR

No campo do formulário HTML que deseja mascará ficará assim:
<input type="text" onKeyPress="MascaraGenerica(this, 'CPF');" >Caso queira a máscara do CPF, CNPJ, CEP, TELEFONE, DATA, MOEDA, INTEIRO ou CPFCNPJ no mesmo campo, basta trocar no campo do formulário HTML que contém o atributo: onKeyPress="MascaraGenerica(this, 'CPF');" o nome 'CPF' pelo nome da outra máscara que desejar, lembrando de digitar o nome da máscara em caixa alta.

No javascript copie todo código abaixo:
function MascaraInteiro(num) { var er = /[^0-9]/; er.lastIndex = 0; var campo = num; if (er.test(campo.value)) {///verifica se é string, caso seja então apaga var texto = $(campo).val(); $(campo).val(texto.substring(0, texto.length - 1)); return false; } else { return true; } } function MascaraFloat(num) { var er = /[^0-9.,]/; er.lastIndex = 0; var campo = num; if (er.test(campo.value)) {///verifica se é string, caso seja então apaga var texto = $(campo).val(); $(campo).val(texto.substring(0, texto.length - 1)); return false; } else { return true; } } //formata de forma generica os campos function formataCampo(campo, Mascara) { var er = /[^0-9/ (),.-]/; er.lastIndex = 0; if (er.test(campo.value)) {///verifica se é string, caso seja então apaga var texto = $(campo).val(); $(campo).val(texto.substring(0, texto.length - 1)); } var boleanoMascara; var exp = /\-|\.|\/|\(|\)| /g var campoSoNumeros = campo.value.toString().replace(exp, ""); var posicaoCampo = 0; var NovoValorCampo = ""; var TamanhoMascara = campoSoNumeros.length; for (var i = 0; i <= TamanhoMascara; i++) { boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".") || (Mascara.charAt(i) == "/")) boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(") || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " ")) if (boleanoMascara) { NovoValorCampo += Mascara.charAt(i); TamanhoMascara++; } else { NovoValorCampo += campoSoNumeros.charAt(posicaoCampo); posicaoCampo++; } } campo.value = NovoValorCampo; ////LIMITAR TAMANHO DE CARACTERES NO CAMPO DE ACORDO COM A MASCARA// if (campo.value.length > Mascara.length) { var texto = $(campo).val(); $(campo).val(texto.substring(0, texto.length - 1)); } ////////////// return true; } function MascaraMoeda(i) { var v = i.value.replace(/\D/g, ''); v = (v / 100).toFixed(2) + ''; v = v.replace(".", ","); v = v.replace(/(\d)(\d{3})(\d{3}),/g, "$1.$2.$3,"); v = v.replace(/(\d)(\d{3}),/g, "$1.$2,"); i.value = v; } function MascaraGenerica(seletor, tipoMascara) { setTimeout(function () { if (tipoMascara == 'CPFCNPJ') { if (seletor.value.length <= 14) { //cpf formataCampo(seletor, '000.000.000-00'); } else { //cnpj formataCampo(seletor, '00.000.000/0000-00'); } } else if (tipoMascara == 'DATA') { formataCampo(seletor, '00/00/0000'); } else if (tipoMascara == 'CEP') { formataCampo(seletor, '00.000-000'); } else if (tipoMascara == 'TELEFONE') { formataCampo(seletor, '(00) 000000000'); } else if (tipoMascara == 'INTEIRO') { MascaraInteiro(seletor); } else if (tipoMascara == 'FLOAT') { MascaraFloat(seletor); } else if (tipoMascara == 'CPF') { formataCampo(seletor, '000.000.000-00'); } else if (tipoMascara == 'CNPJ') { formataCampo(seletor, '00.000.000/0000-00'); } else if (tipoMascara == 'MOEDA') { MascaraMoeda(seletor); } }, 200); }

FUNÇÃO JAVASCRIPT PARA EVITAR ENVIO DO FORM HTML AO CLICAR NO BOTÃO SUBMIT

Este modelo javascript demonstra como evitar o envio do submit pelo HTML, deixando para ser definido o envio submit através do JS.

$("#form").submit(function(e){ e.preventDefault();//este código evita o envio do submit do form HTML ao apetar o enter ou no botão submit ///escreva o código que será executado ao clicar no botão submit, e o form será enviado via javascrit e não pelo submit do HTML. })

Centralizar horizontal e vertical uma div dentro de outro elemento CSS

<html>
<body>
<style>  
        #divFora{width:200px;height:200px;border: 1px solid;position: relative}
        #divDentro{
         position: absolute;  
         top: 50%;  
         transform: translateY(-50%);  
         right: 0;  
         left: 0;  
         margin: 2px;
        word-wrap: break-word;
        border: 1px solid red;
        }
    </style>  

 <div id="divFora">
    <div id="divDentro">Conteúdo da div dentro</div>
 </div>
</body>
</html>

Upload de arquivo e imagem com ajax, js, php e html utilizando a barra de progresso

Se este conteúdo foi útil para você ou se encontrou algum erro, deixe seu comentário avaliando ou informando o erro.

 /////criar o arquivo com nome de upload-arquivo.php e inserir apenas este conteúdo que está em php/////  
<?php  
           if ($_FILES) {  
       $arquivo = array_shift($_FILES);        
       $nomeArquivo = $arquivo['name'];        
           $upload = move_uploaded_file($arquivo['tmp_name'], "upload/arquivo/". $nomeArquivo);  
           if ($upload == true) {  
             $results = array("nome_arquivo" => $nomeArquivo, "results" => true, "msg" => "Arquivo inserido com sucesso!");  
           } else {  
             $results = array("results" => false, "msg" => "Erro ao tentar fazer upload de arquivo. Tente novamente mais tarde!");  
           }  
     } else {  
       $results = array("results" => false, "msg" => "O arquivo ainda não foi escolhido!");  
     }  
 exit(json_encode($results));  
 ?> 
/////////////////////////////////////////////

//// criar o arquivo na mesma pasta que está o upload-arquivo.php com o nome index.html e inserir este conteúdo abaixo////
 <html>  
 <head>  
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>   
   <script src="http://malsup.github.com/jquery.form.js"></script>  
 <script>   
 function uploadArquivo(selectorForm){   
     $(selectorForm).ajaxForm({    
      uploadProgress: function (event, position, total, percentComplete) {   
       $(selectorForm + " #upload_in_progress").css("display", 'block');   
       $(selectorForm + ' progress').attr('value', percentComplete); //CARREGAR A BARRA DE PROGRESSO   
       $(selectorForm + ' #porcentagem').html(percentComplete + '%'); ///MOSTRA A PORCENTAGEM DO CARREGAMENTO   
      },   
      success: function (res) {   
       $(selectorForm + ' progress').attr('value', '100');   
       $(selectorForm + ' #porcentagem').html('100%');   
       var params = JSON.parse(res); //recebe o resultado retornado em json do php  
       if (params.results == true) {   
        alert(params.msg);  
       //caso procedimento foi realizado com sucesso insira o código aqui  
       } else {   
        alert(params.msg);   
        //caso procedimento não foi realizado com sucesso insira o código aqui   
       }   
      },   
      complete: function (xhr) {   
       $(selectorForm + " #upload_in_progress").css("display", 'none');   
       $(selectorForm + ' progress').attr('value', 0);   
       $(selectorForm + ' #porcentagem').html('0%');   
      }   
     })   
      $(selectorForm).submit();   
  }   
 </script>  
 </head>  
 <body>  
 <form action="upload-arquivo.php" id="formEnviarArquivo" enctype="multipart/form-data" >  
  Escolha o arquivo para download <br />  
  <input type="file" name="arquivo" id="arquivo" />  <br />
  <button onclick="uploadArquivo('#formEnviarArquivo')">Enviar arquivo</button>  
 <div id="upload_in_progress" class="upload_infobar" style="display: none;width: 100%">  
  <progress value="0" max="100" style="width:100%"></progress>  
  <img src="img/ajax-loader.gif" width="16" height="16">  
  Upload em andamento  
  <span id="porcentagem">0%</span>  
 </div>  
 </form>  
 </body>  
 </html>  

Gerar formatação e html do código de programação