Jump to content
danluc

Busca Produtos

Recommended Posts

Tenho esse codigo:

$('#busca').keyup(function(){
      var buscaTexto = $(this).val();
      if(buscaTexto.length >= 3){
        $.ajax({
          method: 'post',
          url: '{{ route('site.index.newBusca') }}',
          data: {_token: $('meta[name=csrf-token]').attr('content'), texto: buscaTexto},
          dataType: 'json',
          beforeSend: function() {
            $("#resultado_busca").html("Carregando..."); //Carregando
          },
          success: function(retorno){
            if(retorno.qtd == 0){
              $('#resultado_busca').html('<p>Não encontramos resultados para sua busca</p>');
            }else{
              console.log(retorno);
              $('#resultado_busca').html(retorno.ID);
            }

            //Limpar Status de Carregando
            $("#resultado_busca").html("<a href='#'>"+retorno.dados+"</a>");
            
          }
        });
      }
    });

recebo nessa pagina:

public function newBusca(Request $request){
		$query = $request['texto'];
		if(!$query && $query == '') return Response::json(array(), 400);
		$products = CartProduto::produtos($query, $this->_cnpj);
		$data = array_merge($products);
		$data['qtd'] = count($data);
		foreach ($data as $dado) {
			$dado->dados .= '<a href="#" id="'.$dado->ID.':'.$dado->PRECO.'">'.$dado->ID.'</a>';
		}
		return $data;
	}

ele me retorna esse json:

{"0":{"NOMEFANTASIA":"576 MR, UN, 01 - PRETO FOSCO \/ HASTE INTERNO PRETO PONTEIRA PRETO","dados":"<a href=\"#\" id=\"38802:82.0\">38802<\/a>","PRECO":"82.0","url":"\/representante\/Add-Cart\/38802?cnpj=","ID":"38802","SITUACAO":"1","ALIQUOTA":"5.0"},"1":{"NOMEFANTASIA":"576 MR, UN, 02 - BLACK7 FOSCO \/ HASTE INTERNO BLACK 7 PONTEIRA AZUL ESCURO","dados":"<a href=\"#\" id=\"38803:82.0\">38803<\/a>","PRECO":"82.0","url":"\/representante\/Add-Cart\/38803?cnpj=","ID":"38803","SITUACAO":"1","ALIQUOTA":"5.0"},"2":{"NOMEFANTASIA":"576 MR, UN, 04 - CINZA+AZUL C\/ CRISTAL INTERNO C\/  PONTEIRA PRATA","dados":"<a href=\"#\" id=\"39306:82.0\">39306<\/a>","PRECO":"82.0","url":"\/representante\/Add-Cart\/39306?cnpj=","ID":"39306","SITUACAO":"1","ALIQUOTA":"5.0"},"qtd":3}

só que na minha view (Página não aparece nada).

quando dou um console.log() recebo os resultados, mas no meu html não aparece. 

Share this post


Link to post
Share on other sites
3 horas atrás, danluc disse:

 

?

 

Evite 'bump' topics, 'up'. 

 

 

Da um 

console.log($('#resultado_busca'))

Veja onde está o elemento da tela.

Tente 'mockar' os dados.

 

Você mesmo pelo terminal do console: 

 

Chrome:

Ctrl + shift + J

Mozilla:

Ctrl + shift + K

 

 

//console.log(retorno.ID); //Pegar os dados que vem....
$('#resultado_busca').html('INSERIR_MOCKADOS');

 

Share this post


Link to post
Share on other sites

Cara, eu to certo de que eu já tive esse problema mas não consigo lembrar como eu resolvi :/

 

Faz o que o @gabrieldarezzo falou, testa inserir qualquer conteúdo dentro do seletor e vê se altera. Se não alterar, sugiro tu dar uma limpada na função de sucesso do retorno da consulta ajax e tenta realizar algumas alterações no DOM pra vê se tem algum efeito. Se mesmo assim não rolar, tenta fazer uma requisição assíncrona. Não vi seu código por completo, mas dependendo da forma como você o estruturou, mudar o tipo da requisição pode resolver seu problema, porém, você tem que analisar se essa é a decisão correta.

Share this post


Link to post
Share on other sites

Descobrir em partes, quando coloco assim : 

retorno[0].NOMEFANTASIA

ele me retorna apenas um, como o nome do produto certo.

como faço para ele da um laço aqui:

$('#resultado_busca').html("<a href='#'>"+retorno[i].NOMEFANTASIA+"</a>");

?

Share this post


Link to post
Share on other sites

Resolvi assim.

 

              $.each(retorno, function(i, item) {
                //console.log(item.dados);
                $('#resultado_busca').append(item.dados);               
              })

Agradeço a todos que ajudaram.

  • +1 2

Share this post


Link to post
Share on other sites

Ele me retorna a parti do 3 caractere digitado, certo.

más quando digito 4 ou  mais caracteres, ele vai me trazendo o resultado toda vez, ai fica duplicando, triplicando, quadruplicando  o resultado, como resolver isso tbm?

 

Citar

"tipo, se colocar 2315 quando chega no 231 ele me retorna, ai coloco o 5 ele vai e acrescenta na consulta os mesmo resultado do 231 mais os mesmo de 2135."

 

Segue meu Codigo.:

$(function(){
      $('#busca').keyup(function(){
        var buscaTexto = $(this).val();
        if(buscaTexto.length >= 3){
          $.ajax({
            method: 'post',
            url: '{{ route('site.index.newBusca') }}',
            data: {_token: $('meta[name=csrf-token]').attr('content'), texto: buscaTexto},
            dataType: 'json',
            beforeSend: function() {
              $('#carregando').show();
            },
            success: function(retorno){
              if(retorno.qtd == 0){
                $('#carregando').hide();
                $('#resultado_busca').html('<p>Não encontramos resultados para sua busca</p>');
              }else{
                $.each(retorno, function(i, item) {
                  
                  $('#carregando').hide();
                  console.log(item.dados);
                  $('#resultado_busca').append(item.dados);               
                })
              }
            }
          });
        }
      });

      $('body').on('click', '#resultado_busca a', function(){
        var dadosProduto = $(this).attr('id');
        $.ajax({
          method: 'post',
          url: '{{ route('newCart.addproduto') }}',
          data: {_token: $('meta[name=csrf-token]').attr('content'), produto: dadosProduto, cnpj: '{{ $_GET['cnpj'] }}' },
          dataType: 'json',
          success: function(retorno){
            $('tbody#content_retorno').html(retorno.dados);
          }
        });
      });
    });

 

Share this post


Link to post
Share on other sites

No console fica assim:

<a href="#" id="29872">2315 MCR, UN, 05 - PRETO C/AZUL TURQUESA</a>
<a href="#" id="29873">2315 MCR, UN, 06 - PRETO COM BEGE</a>
<a href="#" id="29874">2315 MCR, UN, 07 - PRETO COM ROXO</a>
<a href="#" id="32612">2315 MCR, UN, 17 - PRETO C/VERMELHO</a>
<a href="#" id="32614">2315 MCR, UN, 19 - BORDÔ</a>
<a href="#" id="34383">2315 MCR, UN, 21 - PRETO C/ HASTES DEMI</a>
<a href="#" id="36909">2315 MCR, UN, 25 - CAFÉ C/ GOIABA</a>
<a href="#" id="38007">2315 MCR, UN, 26 - ROXO C/ CRISTAL</a>
<a href="#" id="38069">2315 MCR, UN, 27 - BORDÔ DEGRADÊ P/ VERMELHO</a>
<a href="#" id="39142">2315 MCR, UN, 28 - FRENTE BORDO C/ HASTE BEGE</a>
<a href="#" id="39161">2315 MCR, UN, 29 - CRISTAL</a>
<a href="#" id="39163">2315 MCR, UN, 30 - ROSA TRANSP. C/ PRETO TOTAL HASTE ROSA TRANSP.</a>
undefined
<a href="#" id="29872">2315 MCR, UN, 05 - PRETO C/AZUL TURQUESA</a>
<a href="#" id="29873">2315 MCR, UN, 06 - PRETO COM BEGE</a>
<a href="#" id="29874">2315 MCR, UN, 07 - PRETO COM ROXO</a>
<a href="#" id="32612">2315 MCR, UN, 17 - PRETO C/VERMELHO</a>
<a href="#" id="32614">2315 MCR, UN, 19 - BORDÔ</a>
<a href="#" id="34383">2315 MCR, UN, 21 - PRETO C/ HASTES DEMI</a>
<a href="#" id="36909">2315 MCR, UN, 25 - CAFÉ C/ GOIABA</a>
<a href="#" id="38007">2315 MCR, UN, 26 - ROXO C/ CRISTAL</a>
<a href="#" id="38069">2315 MCR, UN, 27 - BORDÔ DEGRADÊ P/ VERMELHO</a>
<a href="#" id="39142">2315 MCR, UN, 28 - FRENTE BORDO C/ HASTE BEGE</a>
<a href="#" id="39161">2315 MCR, UN, 29 - CRISTAL</a>
<a href="#" id="39163">2315 MCR, UN, 30 - ROSA TRANSP. C/ PRETO TOTAL HASTE ROSA TRANSP.</a>
undefined

Sempre que digito mais de quatro caracteres ele duplica. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By luannsr12
      Olá pessoas, estou   utilizando o Google Charts, e me venho a necessidade de usar imagem nos gráficos.
      Alguém já usou, e sabe como fazer?
    • By MEGATRON
      Crie um código em JavaScript que receba 2 palavras, e depois as imprima
      intercaladas. Ex.: “Joao” e “Mary”; a impressão deve ser: “JMoaaroy”. Use uma função
      que receba as duas palavras, e faça a intercalação.
    • By Alyss
      Olá!
       
      Esotu com uma certa dificuldade em um projeto que estou desenvolvendo em relação a funcionalidade drag and drop com jQuery/JavaScript.
       
      <div class="pricipal-menu"> <div class="col-1"> <img src="imagem/1.png"> <img src="imagem/2.png"> <img src="imagem/3.png"> </div> <div class="col-2"> <img src="imagem/1.png"> <img src="imagem/2.png"> <img src="imagem/3.png"> </div> <div class="col-3"> <img src="imagem/1.png"> <img src="imagem/2.png"> <img src="imagem/3.png"> </div> <div class="col-4"> <img src="imagem/1.png"> <img src="imagem/2.png"> <img src="imagem/3.png"> </div> </div> Bom, o que quero fazer é, por exemplo, pegar a img1 da primeira coluna (1, 1) e passá-la para a coluna 2 na posição da img2  (2,2). Até ai tudo bem, o problema é , preciso que quando a img1 for colocada na posição (2,2) a img2 que está na vá para (1,1). Exatamente como um $(...).sortable(), aliás, já tentei até mesmo com o connectWith do sortable(), mas não adianntou muito.
       
      Mais resumidamente, é fazer com que as imagens invertam a posição entre as colunas, mas não sei como.
       
      OBS: já tentei, inclusíve, colocá-las em variáveis pra depois assumirem as posições com o drag'n drop, mas cheguei no mesmo resultado  do connectWith.
       
      Agradeço a atenção!
       
       
    • By Anonicah
      Olá preciso de ajuda com esse exercício. Montei até a parte de formulário + validação de javascrip no dreamweaver mas buguei com o resto. O que eu fiz:
       

      <html>
      <head>
      <title> Formulário CPF validado com Java Script </title>
          
          <script language="javascript" type="text/javascript">
      function validar() {
      var cpf = form1.cpf.value;
          
      if (cpf == "") {
      alert('Preencha o campo com seu cpf');
      form1.cpf.focus();
      return false;
      }
          
      }
      </script>
          
          
      </head>
      <body>
      <form name="form1" action="enviar.php" method="post">
      CPF:
      <input name="cpf" type="text"><br /><br />
      <input type="submit"  onclick="return validar()">
      </form>
      </body>
      </html>
       
       
      EXERCÍCIO
      Criar um formulário simples em html com um único campo CPF;
      Fazer uma validação em javascript antes de fazer o post;
      Consumir o WS https://bi.vidaclass.com.br/utils para consultar informações do CPF enviado pelo form;
      Do retorno obtido exibir na tela:
      Nome, email, telefone
      Se tem compra em saude: Sim | Não
      Quantas compras: (5) ex.
      Se tem farma: Sim | Não
      Se tem dependente: Sim | Não
      Qtd. de dependentes: (2) ex.

      Obtem o token para consumir os endpoints;
      https://bi.vidaclass.com.br/auth
      {
          "company_id": 1,
          "username": "webmaster@vidaclass.com.br",
          "password": "Teste20170705"
      }
      Endpoint para consultar o CPF
      https://bi.vidaclass.com.br/utils
      {
          "action": 4,
          "key": {
              "cpf": 25383193820
          }
      }
    • By iagomonteiro
      Estou criando um jogo de cartas em web, o jogo é bem estilo HS, e estou tendo problemas para adicionar condições de movimentação no drag and drop. Como vocês podem ver eu tenho uma variável mana, e a movimentação das cartas só seria possível de acordo com ela, porém quando adiciono as condições o D&D acaba nem se movimentando mais, pensei em chamar cada função do d&d dentro de uma condição, mas também não funcionou, alguém pode ajudar?
       
      JS
      // Jogador 1
      const fillplace1 = document.querySelector('#fillplace1');
      const fillplace2 = document.querySelector('#fillplace2');
      const fillplace3 = document.querySelector('#fillplace3');
      var fill;
      const empties = document.querySelectorAll('.empty');
      fillplace1.addEventListener('dragstart', enterstart);
      fillplace2.addEventListener('dragstart', enterstart);
      fillplace3.addEventListener('dragstart', enterstart);
      for (const empty of empties) {
          empty.addEventListener('dragover', dragOver);
          empty.addEventListener('dragenter', dragEnter);
          empty.addEventListener('dragleave', dragLeave);
          empty.addEventListener('drop', dragDrop);
      }
      function enterstart(){
          fill = this;
      }
      function dragOver(e) {
          e.preventDefault();
      }
      function dragEnter(e) {
          e.preventDefault();
          this.className += ' hovered';
      }
      function dragLeave() {
          this.className = 'empty';
      }
      function dragDrop(id) {
          this.className = 'empty';
          this.append(fill);
      }
       
      HTML
      <link rel="stylesheet" href="../css/jogar.css" />
       
      <div id="barraGeneral">
          <img src="../imagens/Campo/barraGeneralalfa.png" id="imggeneral" />
      </div>
       
      <div id="persona">
          <img src="../imagens/Personagem/cucapersonagem.png" id="imgpersonagem" />
      </div>
       
      <button id="btpassar" onclick="cont();">Passar Rodada</button>

      <H1 id="campomana">1</H1>
       
      <!-- Mesa das cartas jogador 1-->
      <div class="empty" id="emptyplace1">
      </div>
      <div class="empty" id="emptyplace2">
      </div>
      <div class="empty" id="emptyplace3">
      </div>
      <div class="empty" id="emptyplace4">
      </div>
      <div class="empty" id="emptyplace5">
      </div>
       
      <!-- Mão do jogador 1 -->
      <div class="emptyhand1">
          <div class="fill" draggable="true" id="fillplace1">
              <img src='../imagens/Sorteio/aa.png' draggable='true'>
          </div>
      </div>
       
      <div class="emptyhand2">
          <div class="fill" draggable="true" id="fillplace2">
              <img src='../imagens/Sorteio/aa2.png' draggable='true'>
          </div>
      </div>
       
      <div class="emptyhand3">
          <div class="fill" draggable="true" id="fillplace3">
              <img src='../imagens/Sorteio/aa2.png' draggable='true'>
          </div>
      </div>
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.