2017-10-04 25 views
0

我有一個表中的數據從數據庫動態填充,現在有一個複選框在每一行的開始,我想要做的是當用戶點擊導出按鈕,我想要所有那些被檢查的行,這是我的代碼!獲取按鈕上的所有檢查行點擊

Dyanamic表

<table id="example" class="export_table"> 
         <thead> 
         <tr> 
          <th id="not1">Check Box</th> 
          <th>Brand</th> 
          <th>Production Date</th> 
          <th>Expiry Date</th> 
          <th>Made In</th> 
          <th>Status</th> 
          <th>Batch Code</th> 
          <th>Created On</th> 
         </tr> 
         </thead> 
         <tbody> 

         $i=0; 
         foreach($results as $r){ 
          echo "<tr>"; 
          echo "<th id='not2'><input type='checkbox' name='checkedvalues' value='val_".$i."'/> </th>"; 
          echo "<td>".$r['brand']."</td>"; 
          echo "<td>".$r['production_date']."</td>"; 
          echo "<td>".$r['expiry_date']."</td>"; 
          echo "<td>".$r['madein']."</td>"; 
          echo "<td>".$r['status']."</td>"; 
          echo "<td id='main-print'>".$r['batch_code']."</td>"; 
          echo "<td>".$r['created_on']."</td>"; 
          echo "</tr>"; 
          $i++; 

         } 

         ?> 

         </tbody> 
        </table> 

JQuery的

$(document).ready(function() { 

     $("#export").click(function(){ 

      var selectedvalues = []; 

      $.each($("input[name='checkedvalues']:checked"), function(){ 

       selectedvalues.push($(this).val()); 

      }); 

      alert("Checked values are: " + selectedvalues.join(", ")); 

     }); 

    }); 

現在我得到選擇複選框,我不想我想要什麼這INFACT只值是生成一個數組,應該根據檢查的屬性填充!它應該在檢查複選框的基礎上取出整行,然後向我返回一個數組,其中包含所有已檢查的行,有幫助嗎?

+0

使用'selectedvalues.push($(本).closest( 'TR'));'得到完整的行 –

+0

你只得到了價值,因爲你只推數組中的值'selectedvalues.push($(this).val());' –

+0

好的如何打印數組?即使我運行一個循環它是以非常奇怪的格式返回數據「對象{0:,長度:1,prevObject:對象,上下文:} 0」 –

回答

1

您可以將行數據作爲對象存儲在每個複選框的「值」中。 類似下面(您的foreach循環內)

foreach($results as $r){ 
     $obj = "{".$r['brand'].",".$r['production_date'].",".$r['expiry_date'].",".$r['madein'].",".$r['status'].",".$r['batch_code'].",".$r['created_on']."}"; 
     echo "<tr>"; 
     echo "<th id='not2'><input type='checkbox' name='checkedvalues' value='".$obj."'/> </th>"; 
     ... 
     ... 
} 

現在,您selectedvalues陣列將與每個選中的行JavaScript對象。

PS對不起任何PHP語法錯誤

+0

它如何驗證哪些行被選中,哪些不是? –

+0

您所擁有的相同jQuery邏輯應該爲您提供選定的行。我們只是將複選框的值從「val_#」替換爲「{} –

+0

非常有效和有趣的邏輯Azim bhai!保持良好的工作!:) –