• 09-04-2015, 13:29:14
    #1
    Üyeliği durduruldu
    Aşağıda resim deki bir tablom var . Select butonuna bastığımda, bulunduğu satırı seçtirebildim fakat tekrar bastığımda kaldıramadım bir türlü

    Php
    <table id="example" class="display" cellspacing="0" width="100%"><thead><tr><th>PRODUCT CODE</th><th>PRODUCT DESCRIPTION</th><th>SUGGESTED RETAIL PRICE</th><th>BUYING PRICE</th><th>QUANTITY</th><th>DISCOUNT</th><th></th></tr>
    </thead>
    <tbody>
        <?php
         $id = "";
         foreach ($veri as $keyX => $valueX) { $id = str_replace(".", "",  $valueX[A]);?>   
        <tr class="tr" id="tr_<?php echo $id; ?>">
        <label id="l"><input type="checkbox" class="c" name="deger[]" value="1"/></label>
        <td style="text-align: center;">
            <?php echo $valueX[A]; ?>
        </td>
        <td style="text-align: center;">
            <?php echo $valueX[B]; ?>
        </td>
        <td style="text-align: center;">
            <?php echo $valueX[C]; ?>
        </td>
        <td style="text-align: center;">
            <?php echo $valueX[D]; ?>
        </td>
        <td style="text-align: center;">
            <input type="text" style="width: 70px;" />
        </td>
        <td style="text-align: center;">
            %15
        </td>
         <td style="text-align: center;">
            <button type="button" class="btn btn-success" data-id="<?php echo $id; ?>">Select</button>
        </td>
        </tr>
    
        <?php } ?>
        
    
    </tbody>
    </table>
    Js
    <script type="text/javascript" charset="utf-8">
                $(document).ready(function() {
                    $('#example').dataTable();
                } );
            </script>
      <script>
    $(function() {
    function checksec(id) {
          $('.btn-success').each(function(){   
          $('#tr_'+id).removeClass('secili');
    
          });      
          if ($('#l').length) {
             $('#l').each(function(){ 
    
               $('#tr_'+id).removeClass('secili');
             });
              $('.c').each(function(){ 
                 $('#tr_'+id).addClass('secili');
             });
          };
    }
       $('.btn-success').click(function(){
       var id = $(this).attr('data-id');
         
       checksec(id);
       });
     
       });
    </script>
  • 09-04-2015, 13:35:32
    #2
    $('#tr_'+id).removeClass('secili');

    Şunu , function checksec(id) { un altına koyup denesene az.
  • 09-04-2015, 13:54:43
    #3
    Üyeliği durduruldu
    Erturk adlı üyeden alıntı: mesajı görüntüle
    $('#tr_'+id).removeClass('secili');

    Şunu , function checksec(id) { un altına koyup denesene az.
    denedim olmadı üstad.
  • 09-04-2015, 16:59:42
    #4
    jquery hasClass metodu ile click yapılan satırın secili olup olmadığını anlayabilirsiniz. bu sizi sonuca götürür diye umuyorum.
  • 09-04-2015, 20:54:13
    #5
    ylv
    Üyeliği durduruldu
    Quismo adlı üyeden alıntı: mesajı görüntüle
    Aşağıda resim deki bir tablom var . Select butonuna bastığımda, bulunduğu satırı seçtirebildim fakat tekrar bastığımda kaldıramadım bir türlü

    Php
    <table id="example" class="display" cellspacing="0" width="100%"><thead><tr><th>PRODUCT CODE</th><th>PRODUCT DESCRIPTION</th><th>SUGGESTED RETAIL PRICE</th><th>BUYING PRICE</th><th>QUANTITY</th><th>DISCOUNT</th><th></th></tr>
    </thead>
    <tbody>
        <?php
         $id = "";
         foreach ($veri as $keyX => $valueX) { $id = str_replace(".", "",  $valueX[A]);?>   
        <tr class="tr" id="tr_<?php echo $id; ?>">
        <label id="l"><input type="checkbox" class="c" name="deger[]" value="1"/></label>
        <td style="text-align: center;">
            <?php echo $valueX[A]; ?>
        </td>
        <td style="text-align: center;">
            <?php echo $valueX[B]; ?>
        </td>
        <td style="text-align: center;">
            <?php echo $valueX[C]; ?>
        </td>
        <td style="text-align: center;">
            <?php echo $valueX[D]; ?>
        </td>
        <td style="text-align: center;">
            <input type="text" style="width: 70px;" />
        </td>
        <td style="text-align: center;">
            %15
        </td>
         <td style="text-align: center;">
            <button type="button" class="btn btn-success" data-id="<?php echo $id; ?>">Select</button>
        </td>
        </tr>
    
        <?php } ?>
        
    
    </tbody>
    </table>
    Js
    <script type="text/javascript" charset="utf-8">
                $(document).ready(function() {
                    $('#example').dataTable();
                } );
            </script>
      <script>
    $(function() {
    function checksec(id) {
          $('.btn-success').each(function(){   
          $('#tr_'+id).removeClass('secili');
    
          });      
          if ($('#l').length) {
             $('#l').each(function(){ 
    
               $('#tr_'+id).removeClass('secili');
             });
              $('.c').each(function(){ 
                 $('#tr_'+id).addClass('secili');
             });
          };
    }
       $('.btn-success').click(function(){
       var id = $(this).attr('data-id');
         
       checksec(id);
       });
     
       });
    </script>

    aklımda kalanlardan

    seçilmişmi kontrol .is(':checked')
    seçme işlemi .attr('checked',true)
    seçmeme işlemi .attr('checked',false)

    hatalı ise jquery sitesinden araştırın.
  • 10-04-2015, 08:09:10
    #6
    Üyeliği durduruldu
    mtahir adlı üyeden alıntı: mesajı görüntüle
    jquery hasClass metodu ile click yapılan satırın secili olup olmadığını anlayabilirsiniz. bu sizi sonuca götürür diye umuyorum.

    ylv adlı üyeden alıntı: mesajı görüntüle
    aklımda kalanlardan

    seçilmişmi kontrol .is(':checked')
    seçme işlemi .attr('checked',true)
    seçmeme işlemi .attr('checked',false)

    hatalı ise jquery sitesinden araştırın.
    hem checked ile hem hasClass ile ;
    if( $('#tr_'+id).hasClass("secili"))
    alert ile kontrol ettim secilimi değilmi evet basıyor. alert yerine removeClass deyince bu çalışmıyor. neden çalışmaz bu fonksiyon çözemedim.
  • 10-04-2015, 11:32:27
    #7
    ylv
    Üyeliği durduruldu
    <label id="l"> id attribute unique olmalı.

    3 tane each yapmayın. tek bir each içimde temizlik işlerini yapın.
    label baz aldık diyelim

    <label name="asd" data-id="1">
    <label name="asd" data-id="2">

    $label = $('label[name=asd]');
    $labal.each(function(){
    _id = $(this).attr('data-id');
    $('#tr_'+_id).removeClass('secili');
    +button temizliği // class silinecek
    +input checkbox değeri 0 olarak değişecek. checked=false durumu
    });

    sonra fonk.dan gelen id için ekleme ve çıkartma yapılacak. each kullanılmadan.

    kod kısmı uzun olacağı için yazamıyorum. bu işlemler aslında hiç id attribute kullanılmadan da yapılabilir. each index argumanı göndericek. eq ile direk seçmek mümkün.

    kolay gelsin.