Jump to content
helkton

Limitar inputs selecionados

Recommended Posts

Bom galera tenho um cardápio, onde cada categoria do cardápio tem um limite de itens que podem ser adicionados, agora preciso limitar os inputs selecionados de acordo com limite de cada categoria..

olha meu código como esta...

////////////////////////////// aqui pego as categorias juntamente com os limites ///////////////////////////////////

<?php $sqlConsultExtrasDelivery = "SELECT * FROM extras_delivery_item INNER JOIN extras_delivery ON(extras_delivery_item.idExtraItem = extras_delivery.idExtraDelivery) WHERE extras_delivery_item.idItem = '".$resultItemCardapio->iditemCategoria."' AND extras_delivery_item.checked = '1' ";
$conectaConsultExtrasDelivery = $conectaDelivery->query($sqlConsultExtrasDelivery);
while($resultExtrasDelivery = $conectaConsultExtrasDelivery->fetch_object()){
	$limteExtra = $resultExtrasDelivery->limiteExtra;?>

////////////////////////////// aqui pego as categorias juntamente com os limites ///////////////////////////////////


////////////////////////////// aqui monto os itens de cada categoria ///////////////////////////////////
<?php $sqlConsultItensExtras = "SELECT * FROM item_extra WHERE idItemExtra = '".$resultExtrasDelivery->idExtraDelivery."' ";
$conectaConsultItensExtras = $conectaDelivery->query($sqlConsultItensExtras);
while($resultItensExtras = $conectaConsultItensExtras->fetch_object()){?>
////////////////////////////// aqui monto os itens de cada categoria ///////////////////////////////////
<input type="checkbox" class='limited' name="idExtraSelects[]" id="check<?php echo $resultItensExtras->idExtra?>" value="<?php echo $resultItensExtras->idExtra?>">
<label class="custom-control-description" for="check<?php echo $resultItensExtras->idExtra?>"> <?php echo utf8_encode($resultItensExtras->nomeItemExtra)?> </label>
<script>
$(function(){
  var MAX_SELECT = <?php echo $limteExtra?>; // Máximo de 'input' selecionados
  $('input.limited').on('change', function(){
    if( $(this).siblings(':checked').length >= MAX_SELECT ){
       this.checked = false;
    }
  });
});
</script>

<?php }?>

<?php }?>

não sei o que esta acontecendo pois ele esta limitando a 1 item no geral independente dos itens que seleciono 

Share this post


Link to post
Share on other sites

tentei assim

<script type="text/javascript">
$(document).on('click', '.limited', function(){
   var limit = 2;
   var counter = $('.limited:checked').length;
   if(counter > limit) {
      this.checked = false;
      alert('Limite atingido');
   }
});
</script>

mais acho que é algum problema com o nome de cada input, tipo tenho um cardapio com 30 itens(checkbox) separados por categorias

ele conta os inputs selecionados no geral e não por cada categoria

Share this post


Link to post
Share on other sites

geeente do céu fiquei o dia todo queimando a cuca nisso aqui, resolvi parar e dar o ar da graça e tomar um tereré pra refrescar rsss

ai pimba, clareou a mente kkkkk

ficou assim....

<input type="checkbox" class='limited<?php echo $resultExtrasDelivery->tituloExtra?>' name="idExtraSelects[]">
<label class="custom-control-description" for="check<?php echo $resultItensExtras->idExtra?>"> <?php echo utf8_encode($resultItensExtras->nomeItemExtra)?> </label>
<script type="text/javascript">
$(document).on('click', '.limited<?php echo $resultExtrasDelivery->tituloExtra?>', function(){
   var limit = <?php echo $limteExtra	?>;
   var counter = $('.limited<?php echo $resultExtrasDelivery->tituloExtra?>:checked').length;
   if(counter > limit) {
      this.checked = false;
      alert('Limite atingido');
   }
});
</script>

nomeei uma class para cada javascript e esta pegando o limite, vou só ajeitar alguma coisa quanto a mensagem de retorno, por  que esse está me trazendo um alert, quero algo mais bonitinho rss

UUUFA 

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 msantino
      Bom dia.
       
      Estou desenvolvendo uma aplicação que vai acessar e gravar dados via webservice dentro do nosso crm... mas estou com um problema que quando tento fazer o acesso mostra a seguinte mensagem de erro:
       
      Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing Schema: can't import schema from 'http://dsksp015.phonoway.com.br:8051/wsDataServer/mex?xsd=xsd0' in /home/httpd/html/phonoweb.com.br/public_html/carrinhobitrix_busca/teste_soap.php:113 Stack trace: #0 /home/httpd/html/phonoweb.com.br/public_html/carrinhobitrix_busca/teste_soap.php(113): SoapClient->SoapClient('http://187.93.2...') #1 {main} thrown in /home/httpd/html/phonoweb.com.br/public_html/carrinhobitrix_busca/teste_soap.php on line 113
       
      Não sei se faz alguma diferença, mas nosso CRM é o TOTVS RM
       
      Grato.
    • By mamotinho
      Boa noite! estou com dúvidas em relação a array, eu tenho uma procedure no SQL Server e essa procedure exibe uma lista de resultados, eu gostaria de pega o valor desses resultados e lista em um array para eu comparar com outro valor que vai ser selecionado em um select , tipo abaixo:
       
      $arraySelect = $db->prepare(exec WebSite.dbo.server_value_product 2);
      $arraySelect->execute();
      $arrayExemple = $arraySelect->fetchAll();

      procedure_list = array($arrayExemple);
       
      !in_array($valorSelect, $procedure_list){
         echo 'O Valor selecionado não existe nos resultados da procedure';
      }
       
       
      alguem sabe como posso listar o resultado da procedure em array. e sabe se o valor que procuro está entre os resultados da array.
    • By asacap1000
      Galera já não sei mais onde procurar, estou configurando o processo de login com certificação digital porém não consigo ler o retorno. No site da Certisign explica em java e .Net mas utilizo em minha aplicação da intranet tudo em PHP como eu teria que fazer. Segue exemplo que eles fornecem em .Net
       
      <form action="https://autenticador.certisign.com.br/CertisignLogin/certificado/login" method="get"> <input type="hidden" value="209" id="id" name="id"> <input type="hidden" value="CHAVE CRIPTOGRAFICA INICIAL" id="nome" name="nome"> <input type="hidden" value="http://www.seusite.com.br/suaAplicacao/retorno" id="retorno" name="retorno"> <div> <input type="image" src="images/ico-certisign_30x30.png" alt="Submit" id="btnLoginCertisign"> </div> </form> O de cima envia até aí tudo bem
       
      Abaixo o retorno que é o que não consigo fazer em PHP
       
      string retorno = Request["cb"]; string encryptionKey = "<conteúdo da chave criptográfica descarregada na etapa 2>"; retorno = CryptoLogin.Instance.DecryptText(retorno,encryptionKey);</conteúdo> A variável retorno deverá mostrar as informações como o exemplo aaixo.
       
      CertificadoBean: { emissor: Certisign Autoridade Certificadora TESTE, nome: "PROPRIETARIO DO CERTIFICADO DE TESTE", cpf: "001.002.003-44", cnpj: "", OAB: "", validade: "2015-05-27 20:59:59", emissao: "2014-05-27 21:00:00", email: "proprietario.teste@certisign.com.br", certificadoBase64: "MIIFmDCCBICgAwI...... BAQUFADCCARAx" }  
    • By Camilavip
      Queria saber como fazer esse select e quando eu trazer um estado ele já puxa as cidades contidos nele, e ao escolher a cidade ele trazer os bairros. Consegui pela internet mas só com estados e cidades. no caso em 2 níveis, e eu precisaria em 3, faço pelo mysqli
       
      Em estados no banco está assim
      CREATE TABLE `estados` ( `id_estado` int(10) NOT NULL, `estado` varchar(30) NOT NULL ) ENGINE=Aria DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `estados` -- INSERT INTO `estados` (`id_estado`, `estado`) VALUES (1, 'Rio de Janeiro'), (2, 'Minas Gerais'); Cidades
      CREATE TABLE `cidades` ( `id_cidade` int(10) NOT NULL, `id_estado` int(10) NOT NULL, `cidade` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `cidades` -- INSERT INTO `cidades` (`id_cidade`, `id_estado`, `cidade`) VALUES (1, 1, 'Rio de Janeiro'), (2, 2, 'Belo Horizonte'); E bairros
      CREATE TABLE `bairros` ( `id_bairro` int(10) NOT NULL, `id_cidade` int(10) NOT NULL, `bairro` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `bairros` -- INSERT INTO `bairros` (`id_bairro`, `id_cidade`, `bairro`) VALUES (1, 1, 'Centro'), (2, 1, 'Tijuca'), (3, 1, 'Leblon'), (4, 2, 'Pampulha');  
    • By danilo759
      Estou com uma dúvida, em uma tabelinha é cadastrado a data em uma coluna e a hora em outra coluna, então para "juntar" podemos usar CONCAT() no SELECT. Tudo certo...
       
      SELECT id, CONCAT(data_ini, ' ', hora_ini) as inicio FROM tabela

      Retorna como esperado:

       

      Minha dúvida é, se eu quiser exibir o horário de término para ficar assim como seria a consulta? Lembrando que não existe as colunas data_final e horario_final.

      2020-09-13 03:00:00 2020-09-13 04:00:00
      2020-09-13 04:00:00 2020-09-13 05:00:00
      2020-09-13 05:00:00 ....
×

Important Information

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