Jump to content
Sign in to follow this  
LuccasCardial

Problemas com leitura JSON

Recommended Posts

Salve, amigos! :)

 

Estou criando um pequeno framework para a função 'auto-complete'.

Sei que temos o Jquery-Ui, mas quero criar algo que eu tenha a satisfação de ter feito.

Porém, estou com um problema um tanto quanto estranho.

Todo o retorno das informações do meu DB são feitas em JSON, e então crio um laço each com Jquery para ler todo o array:

$.ajax({
	url: "AutoComplete.php",
	type: 'GET',
	dataType: 'json',
	data: {input: objeto, key: keyWord },
})
.done(function(resposta) {
	
			
	html = "<datalist id="+list+">";
	$.each(resposta, function(i){
		html +="<option value="+this.nome+">";
	});
	html += "</datalist>";
	$('.JanelaSistema').append(html);		

})
.fail(function() {
	console.log("error");
})

No meu db, possuo 3 registros na tebela "clientes"

 

ID | Nome

01 | Lucas Cardial

02 | Marilene Barbosa

03 | Zuleide Conceição

 

Lá no each, quando atribuo o valor da tag option:

$.each(resposta, function(i){
 html +="<option value="+this.nome+">";
});

Eu deveria ter o seguinte resultado:

<option value="Lucas Cardial">
<option value="Marilene Barbosa">
<option value="Zuleide Conceição">

Mas o que isto é o que ocorre :

<option value="Lucas" Cardial>
<option value="Marilene" Barbosa>
<option value="Zuleide" Conceição>

Qualquer valor depois do espaço, fica fora da propriedade value.

Este é o resultado em json:

[
 {"id":"1","nome":"Lucas Vinicius"},
 {"id":"2","nome":"Marilene Barbosa"},
 {"id":"5","nome":"Zuleide Conceicao"}
]

Aguardo ansiosamente! :D

Share this post


Link to post
Share on other sites

troque

//html +="<option value="+this.nome+">";
html += '<option value="'+this.nome+'">'+this.nome+'</option>';

Share this post


Link to post
Share on other sites

 

troque

//html +="<option value="+this.nome+">";
html += '<option value="'+this.nome+'">'+this.nome+'</option>';

Não é preciso encerrar a tag com </option>, por se tratar de uma datalist.

Mas você resolveu o meu problema, era só a falta das aspas slimples.

Ficou desta forma:

html +="<option value='"+this.nome+"'>";

Muito obrigado!

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
Sign in to follow this  

  • Similar Content

    • By Salvatore
      Galera alguem poderia me explicar como faço isto ultilizando php? estou perdido
      tenho que usar varias imagens?
       
      De acordo que ele clica e seleciona a poltrona ela muda de cor 
      RED: OCUPADA
      AZUL: LIVRE

    • By drx
      Olá feras!
       
      Estou recebendo este retorno da conexão: SQLSTATE[HY000] [1049] Base 'dbbase' inconnue
       
      O que é que pode ser?
       
      Tudo certinho. Fala que a dbbase não existe, mas existe.
      Alguém tem uma solução ?
       
      Desde já agradeço.
    • By helkton
      ola galera, dúvida besta, mais ja estou quebrando a cabeça,
      seguinte estou preso  num select <option> vindo do banco de dados
      fiz alguns com o if(){}
      mais é pra saber tipoImovel - interesseImovel ou finalidadeImovel
      esses ai são poucos, ficou dboas fazer um if(){} pra cada. Agora pensa comigo...
      Tenho uma TABELA clientes, guardo as informações dos clientes
      Tenho outra tabela imoveis, com os dados do imóvel e tbm com o cliente que cadastrou o imovel,
      na pagina pra editar-imovel.php, monto o <option> pra consultar na tabela clientes todos os clientes cadastrados, como deixo "selected" no nome do cliente que cadastrou o imóvel??
    • By eduardaarosaa
      Ola!! Estou tentando fazer o upload de múltiplos arquivos usando o laravel. Mas  estou tendo o seguinte erro ao tentar cadastrar: 
      "Call to undefined method Symfony\Component\HttpFoundation\FileBag::extension()"  
      Meu controller:
        public function cadastro_info(Request $request)
          {
              $dataForm = $request->except('_token');
              $nameFile = null;
              $loop = count($request->files);
              for ($i=0; $i< $loop; $i++) {
             
                  $name = uniqid(date('HisYmd'));
                  $extension = $request->files->extension();
                  $nameFile = "{$name}.{$extension}";

                  $upload = $request->files->storeAs('upload', $nameFile);
                }
                  if (!$upload)
                      return redirect()
                          ->back()
                          ->with('error', 'Falha ao fazer upload')
                          ->withInput();
              }
      Minha rota:
       Route::post('/cadastro_empresa', 'Site\SiteController@cadastro_info')->name('cadastro_info');
       
      O que estou carregando no controller:
      use Illuminate\Http\Request;
      use DB;
      use App\Http\Controllers\Controller;
      use App\Models\Site\cadastro;
       
      Gerei o link para o storage já 
       
      Alguém sabe dizer o motivo do erro?
       
      Obrigada!!!
       
       
    • By stefany nogueira
      Não estou esta trazendo a tabela e aparece o seguinte erro:

              
      ( ! ) Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\wamp64\www\busca\index.php on line 20
      Call Stack
      #TimeMemoryFunctionLocation
      10.0009402840{main}(  )...\index.php:0
      20.0032418656mysqli_fetch_assoc
      (  )...\index.php:20
                    
       
       
      <?php
          include "conexao.php"
      ?>
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml1" lang="pt-br" xml:lang="pt-br">
          <head>
              <meta charset="utf-8">
              <title> Busca </title>
          </head>
          <body>
          <form action="results" method="post">
          <select name = convênios>
              <option>Selecione o convênio</option>
              <?php
                  $convenios = "SELECT * FROM convênios";
                  $qrconvenio = mysqli_query($conexao, $convenios);
                  while ($row_convenios = mysqli_fetch_assoc($qrconvenio)) ?>
                      <option value="<?php echo($row_convenios ['id_convenios'])?>"><?php echo($row_convenios ['convenio']) ?></option>
              ?>            
          </select>
      </body>
×

Important Information

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