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 violin101
      Olá amigos do grupo
       
      saudações...
       
      Gostaria de tirar uma dúvida com os amigos.
       
      Estou escrevendo uma rotina usando PHP + Codeigniter e fiquei com uma dúvida.
       
      Como consigo ou devo fazer para realizar Pontuações para cada produto, ou seja, dar nota de 0 à 5 ?
       
      Gostaria de utilizar checkbox.
       
      Grato,
       
      Cesar
    • By Diego-SLP
      Boa tarde,
       
      Tenho um while retornando alguns dados do meu banco e gostaria que nessa tabela a ultima linha fosse a soma da coluna, como posso fazer isso ?
       
      Obrigado
    • By Camilavip
      Oi, faço uma consulta no banco de dados para trazer os valores como: Nome, email, telefone, cidade... e se o usuário está ativo ou não
      No campo ativo ele grava 0 se não tiver ativo e 1 se tiver ativo, mas queria que ele trouxesse se for 0 a palavra Não e se for 1 a palavra Sim
      Faço a consulta como abaixo.
      <?php $sql = "SELECT * FROM clientes"; $result = $sqli->query($sql); if ($result->num_rows) { while ($dados = $result->fetch_assoc()) { $id_cliente = $dados['id_cliente']; $cliente = $dados['cliente']; $email = $dados['email']; $ativo = $dados['ativo']; ?> E em seguida apenas chamo os dados.
      <?= $cliente; ?> <?= $email; ?> <?= $ativo; ?> Que me traz os resultados
      Ricardo
      xxxx@xxxx.com
      0 ou 1 de acordo se ele está ativo ou não. Mas aqui eu queria que ele trouxesse de acordo Não ou Sim e não 0 ou 1
    • By Marcos PP
      Tenho uma tabela onde pego todos pedidos realizados no dia, porem mostro todos em uma tabela, ate ai tudo bem, mas o cliente precisa que seja agrupado por quem pediu, vou dar um exemplo,

      Na minha tabela tenho 

      ID_PEDIDO  |  ID_USER_PEDIDO |  PEDIDO
      1                   |   20                           |   524
      5                   |   52                           |   258
      2                   |   35                           |   525
      6                   |   52                           |   253
      3                   |   20                           |   658
      4                   |   20                           |   358

      No resultado me aparece conforme consulta e me mostra todos os pedidos em ordem de pedido
      SELECT * FROM pedidos  ORDER BY ID_PEDIDO ASC
       
      Se eu colocar um GROUP BY ID_USER_PEDIDO vai agrupar os pedidos de acordo com o usuário e mo mostrar apenas 1


      Eu preciso que seja mostrado todos eles porem agrupados na mesma linha da tabela
       
      <table id="datatable1" class="table display responsive "> <thead> <tr> <th class="">ID</th> <th class="">ID do usuario</th> <th class="">Pedido</th> </tr> </thead> <tbody> <?php $sql = "SELECT * FROM pedidos  ORDER BY ID_PEDIDO ASC"; $result = $conn->query($sql); while($row = $result->fetch_assoc()) { ?> <tr> <td><?php echo $row["ID_PEDIDO"];?></td> <td><?php echo $row["ID_USER_PEDIDO"];?></td> <td><?php echo $row["PEDIDO"];?></td> </tr> <?php } ?> </tbody> </table> E que seja exibido conforme esta imagem
       

×

Important Information

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