Autor Zpráva
PetrBK
Profil
Zdravím,
mohl bych poprosit o malou radu/pomoc...

Mám několi tlačítek a potřebuji omzezit jejich výběr na tři (max). Kliknutím na tlačítko se do SESSION ukládá ID produktů pro jejich následné porovnávní. Omezení - vybrat více jak 3 produkty je sice ošetřeno na straně PHP, ale na tlačítka lze stále kliknout i po naplnění kapacity (3 produkty) a ty se pak zobrazují také jako vybrané, což je špatněa chaotické. Mohl by mi někdo poradit jak toto ošetřit, v JS tápu?

<span class="button button_blue btm_compare_add" id="<?php echo $row['id']; ?>">Compare</span>
<span class="button button_blue btm_compare_add" id="<?php echo $row['id']; ?>">Compare</span>
<span class="button button_blue btm_compare_add" id="<?php echo $row['id']; ?>">Compare</span>
<span class="button button_blue btm_compare_add" id="<?php echo $row['id']; ?>">Compare</span>
<span class="button button_blue btm_compare_add" id="<?php echo $row['id']; ?>">Compare</span>

<script>  
$(document).ready(function(){  
  $(".btm_compare_add").click(function(){ 
    
    var $id_isa = (this.id); 
    
    $.ajax({
        url: 'ajax__compare.php',
        type: "GET",
        data: 'id_isa='+$id_isa,
        success: function(data) {
            $('#compare_isa_indicator').html(data);
        }
    });
    
    //alert(<?php echo count($_SESSION['compare_isa']); ?>);
    
    var element = document.getElementById($id_isa);
    element.classList.add("button_red");
    element.classList.add("btm_compare_selected");
    
    element.classList.remove("button_blue");
    element.classList.remove("btm_compare_add");
    
    document.getElementById($id_isa).innerHTML = "Selected";
    
  });
});
</script>

Děkuji a přeji hezký den
Petr B.
Tomášeek
Profil
PetrBK:
Pocet elementu (s konkretni třídou, atributem, ...) v js zjistíš pomoci .length.
PetrBK
Profil
Tomášeek:
Super, diky, funguje to! Takže to bylo až takto jednoduché? :) Neznám ty funkce v JS, takže ještě jednou díky moc.

var $limit = $('.btm_compare_selected').length
    var $element = document.getElementById($id_isa);
    
    if($limit < 3){
      $element.classList.add("button_red");
      $element.classList.add("btm_compare_selected");
      $element.classList.remove("button_blue");
      $element.classList.remove("btm_compare_add");
      $element.innerHTML = "Selected";
    } 

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0