Jump to content
gersonab

autocomplete, obrigar aquisição do id

Recommended Posts

Boa tarde, tenho uma página de pesquisa com vários campos, podendo usar um apenas para pesquisa, fica a critério da pessoa, o que acontece é que todos os campos quando se faz o autocomplete ele envia a pesquisa pelo id, porém se eu enviar o campo em vazio o formulário envia assim mesmo a pesquisa, gostaria que só enviasse caso estivesse com o id.

segue o formulário:

 <h4>Localizar por ...</h4>
<form  role="form" action="listcliente.php" method="GET"  autocomplete='off'>
  <div class="form-row mb-4">
    <div class="form-group col-md-12">
      <label>Nome ou ...</label>
      <input type="text" name="nomec" id="nomec" class="form-control" style="text-transform: uppercase;">
      <input type="hidden" name="idc" id="idc">
    </div>
  </div>
  <div class="form-row mb-4">
    <div class="form-group col-md-4">
      <label>CPF ou ...</label>
      <input type="text" name="cpfc" id="cpfc" class="form-control">
    </div>

    <div class="form-group col-md-4">
      <label>CNPJ ou ...</label>
      <input type="text" name="cnpj" id="cnpj" class="form-control">
    </div>
    <div class="form-group col-md-4">
      <label>Data de nascimento</label>
      <input type="text" name="datan" id="datan" class="form-control">
    </div>
  </div>
  <input type="submit" name="Localizar" value="Localizar" class="btn btn-primary mt-3">

</form>

o autocomplete, apenas um de exemplo.

$( "#nomec" ).autocomplete({
minLength: 2,
source: function( request, response ) {

$.ajax({
url: "../lista/autocli.php",
type: 'post',
dataType: "json",
data: {
search: request.term
},
success: function( data ) {
response( data );
}
});
},
select: function (event, ui) {
$('#nomec').val(ui.item.label); // display the selected text
$('#idc').val(ui.item.value); // save selected id to input
return false;
}
});

a página autocli.php

<?php
require_once('config.php');
if(isset($_POST['search'])){
 $search = $_POST['search'];

 $query = "SELECT nomec, idc FROM cli WHERE nomec LIKE '%".$search."%'";
 $result = mysqli_query($con,$query);

 $response = array();
 while($row = mysqli_fetch_array($result) ){
   $response[] = array("value"=>$row['idc'],"label"=>$row['nomec']);
 }

 echo json_encode($response);
}

exit;
?>

desde já agradeço a ajuda.

Share this post


Link to post
Share on other sites

resolvi da seguinte forma

$("#localiza").submit(function () {
        var vazios = $("input[name=idc]").filter(function() {
            return !this.value;
        }).get();

        if (vazios.length) {
            $(vazios).addClass('vazio');
            alert("Seleção inválida ou vazia.");
            return false;
        
        }
    });

 

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 Luiz Henrique
      Olá,

      Criei uma function para alterar o href de um arquivo css para impressão, tenho 3 botões e cada um carrega um css print diferente, o problema é que se eu adicionar o windows.print(); logo após a alteração do href o css não funciona mas se eu pressionar as teclas de atalho do windows Ctrl+p funciona, segue code:
       
      function printPg(alvo){ var link = document.querySelector('#cssPrint'); link.setAttribute('href', '/app/css/'+alvo+'.css'); window.print(); } <link rel="stylesheet" type="text/css" media="print" href="/app/css/default.css" id="cssPrint"> Obrigado.
    • By Caio Vargas
      fala pessoa tudo bem 
      estou criando um sistema de chat onde tem o botao do whatsapp e quando a pessoa clica ele mostra as mensagens prontas que estao vindo do banco de dados
      la no bando eu cadastro a mensagem e o tempo de cada mensagem que sera mostrada 
      a unica coisa que nao consigo fazer e pegar o tempo da mensagem dinamicamente 
       
      ou seja a mensagem 1 vai tem um tempo de 1000 e assim vai teria alguma forma de pegar isso eu trabalho usando o jquery
    • By Caio Vargas
      Fala pessoal blz
      Tenho uma hellobar e gostaria de emitir um som quando ela aparecer na tela para o usuario como posso fazer isso 
    • By Caio Vargas
      Fala pessoal blz ... 
      Eu criei um menu estilo app para meu site ... E ele tem um efeito porém esse efeito só acontece quando não dá refresh na página então eu teria que chamar as páginas via Ajax ... E como eu poderia fazer isso ?
    • By Caio Vargas
      Fala pessoal blz ... 
      Eu criei um menu estilo app para meu site ... E ele tem um efeito porém esse efeito só acontece quando não dá refresh na página então eu teria que chamar as páginas via Ajax ... E como eu poderia fazer isso ?
×

Important Information

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