2015-12-28 163 views
1

我有這個代碼,其中delete來自數據庫的rows.But時按下deletecheckbox不能正常工作。我想要多刪除複選框。多選複選框刪除javascript

function confirmDelete(delUrl) { 
     if (confirm("Are you sure you want to delete")) { 
      document.location = delUrl; 
     } 
    } 

function check() { 
      document.getElementById("myCheck").checked = true; 
     } 

     function uncheck() { 
      document.getElementById("myCheck").checked = false; 
     } 

HTML

<a href="javascript:confirmDelete('?action=deleteurl&id=<?php echo $row[0]; ?>')"> 
    <input type="checkbox" id="myCheck[]">delete</td> 

PHP

<?php 
if($_GET['action'] == "deletelink" && !empty($_GET['id']) && is_numeric($_GET['id'])) { 
    $result = mysql_query("SELECT * FROM books WHERE id='".intval($_GET['id']); 

    while ($row = mysql_fetch_array ($result)) 
     unlink("/home/me/public_html/upload/image/{$row['image']}"); 
} 
+1

你能顯示你的html嗎? – BNN

+0

我已經添加了主代碼! –

+0

是否要通過選擇並單擊刪除按鈕來刪除多行? –

回答

0

你的邏輯並不適用於多個刪除

這應該是HTML

<input type="checkbox" id="myCheck[]" class="multicheck" name="<?php echo $row[0]; ?>" value="<?php echo $row[0]; ?>"><a href="javascript:confirmDelete('?action=deleteurl&id=<?php echo $row[0]; ?>')">delete</a></td> 


<a href="javascript:confirmMultiDelete(this)">Multiple Delete</a></td> 

,這應該是JavaScript的

function confirmMultiDelete() { 
    if (confirm("Are you sure you want to delete")) { 
    var str = []; 
    $.each(".multicheck:checked",function(){ 
    str.push($(this).val()); 
    }); 

    ids = str.join(","); 
     document.location = '?action=deleteurl&id='+ids; 
    } 
} 
0

這裏是我的做法。

你需要一些修改來做多重刪除作爲我的方法。

  • 首先,你必須把checkbox值,因此你可以得到它的值 刪除。
  • 秒你必須添加另一個按鈕或動作來刪除多個
    記錄。

代碼(修改例):

HTML + PHP代碼

<a href="javascript:confirmDelete('?action=deleteurl&id=value="<?php echo $row[0]; ?>"')">delete 
</a> 
<input type="checkbox" class="delCheck" id="myCheck[]" value="<?php echo $row[0]; ?>"> 
</td> 

<!-- This will generate html code like below --> 
<!-- 
<td> 
    <a href="javascript:confirmDelete('?action=deleteurl&id=1">delete</a> 
     <input type="checkbox" class="delCheck" value="1" id="myCheck[]" class="delCheck"> 
    </td> 
    <td><a href="javascript:confirmDelete('?action=deleteurl&id=2">delete</a> 
     <input type="checkbox" class="delCheck" value="2" id="myCheck[]" class="delCheck"> 
    </td> 
    <td><a href="javascript:confirmDelete('?action=deleteurl&id=3">delete</a> 
     <input type="checkbox" class="delCheck" value="3" id="myCheck[]" class="delCheck"> 
    </td> 
    <td><a href="javascript:confirmDelete('?action=deleteurl&id=4">delete</a> 
     <input type="checkbox" class="delCheck" value="4" id="myCheck[]" class="delCheck"> 
    </td> 
    <td> 
     <input type="button" value="Delete" name="delete_value" id="delete_value" class="delCheck"> 
    </td> 

--> 

<!-- Multiple Delete Button --> 
<input type="button" id="delete_value" name="delete_value" value="Delete" /> 

的Javascript + jQuery的

function confirmDelete(delUrl) { 
    if (confirm("Are you sure you want to delete")) { 
     document.location = delUrl; 
    } 
} 

$(document).ready(function() {    

    $("#delete_value").on("click", function (e){      
     var ids = ''; 
     $('.delCheck:checked').each(function(i){   
      ids += $(this).val() + ','; 
     }); 
     // go to delete url with action delete_all_ur 
     confirmDelete('?action=delete_all_url&id='+ids)    
    });  
}); 

PHP刪除代碼:

if(@$_GET['action'] == "delete_all_url") 
    { 

     $all_ids = $_GET['id']; 
     // Remove trailing ',' from IDs 
     $all_ids = trim($all_ids, ","); 
     // Temporary variable to check only integer value passes 
     $tempId = str_replace(",", "", $all_ids); 

     // Check id numeric or not 
     if (is_numeric($tempId)) {    
      $sql_query = "SELECT * FROM books WHERE id in (".intval($_GET['id'].")"; 
      $result = mysql_query($sql_query); 
      while ($row = mysql_fetch_array ($result)) 
       unlink("/home/me/public_html/upload/image/{$row['image']}");    
     } else { 
      //echo 'errors'; 
     } 

    }