Pesquisar na Comunidade
Mostrando resultados para as tags ''select2''.
Encontrado 1 registro
-
select2 Marcar o item como selected no Select2 com ajax
Rogerio Pancini postou um tópico no fórum Javascript
Boa tarde pessoal. Estou terminando um site para imobiliária, no qual faz parte da ferramenta de busca o Select2. Está tudo funcionando. O problema é que, ao selecionar um imóvel, seria necessário que os campos que o cliente escolheu, ficassem com o selected setados. Esse seria um dos scritps: O que faz o ajax: /*************** Procurar cidade ***************/ //$('#cidade').select2('data', {id: '5256', text: 'cidade selecionada...'}); $( "#cidade" ).select2({ ajax: { url: "<?php echo $dir_base; ?>php/procurar_cidades_pesquisa.php", dataType: 'json', delay: 250, data: function (params) { return { finalidade_id: $("#finalidade").val(), tipo_imovel_id: $("#tipo_imovel").val(), q: params.term // search term }; }, processResults: function (data) { // parse the results into the format expected by Select2. // since we are using custom formatting functions we do not need to // alter the remote JSON data return { results: data }; }, cache: true }, language: { noResults: function (params) { return "Selecione a finalidade"; } } }); $("#bairro").prop("disabled", true); $("#cidade").on("change", function () { if($(this).val().length == 0) { $("#bairro").prop("disabled", true); }else{ $("#bairro").prop("disabled", false); } $("#bairro").empty().trigger('change') }); /*************** Procurar cidade ***************/ E o php que faz a busca do db: <?php /******* Conexão com o bando de dados *******/ include "../Conexao/config.php"; mysqli_select_db($config, $database_config); mysqli_set_charset($config,"utf8"); /******* Conexão com o bando de dados *******/ $finalidade_id = strip_tags(trim($_GET['finalidade_id'])); $tipo_imovel_id = @strip_tags(trim($_GET['tipo_imovel_id'])); $cidade_sel_url = @strip_tags(trim($_GET['cidade_sel_url'])); $search = @strip_tags(trim($_GET['q'])); if(empty($finalidade_id)){ $sql_json = mysqli_query($config, "SELECT imv.cidade, cid.nome FROM tb_imovel imv LEFT JOIN tb_cidades AS cid ON (imv.cidade = cid.id) WHERE cid.nome LIKE '".$search."%' AND imv.finalidade = '1' GROUP BY imv.cidade") or die(mysqli_error($config)); }elseif(empty($tipo_imovel_id)){ $sql_json = mysqli_query($config, "SELECT imv.cidade, cid.nome FROM tb_imovel imv LEFT JOIN tb_cidades AS cid ON (imv.cidade = cid.id) WHERE cid.nome LIKE '".$search."%' AND imv.finalidade = '".$finalidade_id."' GROUP BY imv.cidade") or die(mysqli_error($config)); }else{ $sql_json = mysqli_query($config, "SELECT imv.cidade, cid.nome FROM tb_imovel imv LEFT JOIN tb_cidades AS cid ON (imv.cidade = cid.id) WHERE cid.nome LIKE '".$search."%' AND imv.finalidade = '".$finalidade_id."' AND tipo = '".$tipo_imovel_id."' GROUP BY imv.cidade") or die(mysqli_error($config)); } $return_arr = array(); if(@mysqli_num_rows($sql_json) <= '0'){ echo ""; }else{ while($r_sql_json = mysqli_fetch_array($sql_json)){ $row_array['id'] = $r_sql_json['cidade']; $row_array['text'] = $r_sql_json['nome']; array_push($return_arr,$row_array); } } echo json_encode($return_arr); ?> Encontrei essa linha na documentação: //$('#cidade').select2('data', {id: '5256', text: 'cidade selecionada...'}); Mas eu coloco e a cidade selecionada não fica setada com seleted. São seis campos que ocorrem isso, todos parecidos com este. A instrução acima está correta e eu não estou sabendo fazer ou teria algum outro modo de fazer isso? Obrigado!